Frontend: React on localhost: 3000 < /li>
Бэкэнд: Spring Boot на Localhost: 8080 < /li>
EIDC Endpoint: KeyCloak 21+ в качестве контейнера Docker (пробовал разные версии
on localhost: 8090 < /li>
< /ul >
Поскольку я бэкэнд разработчик, и у меня мало опыта работы с React, я хотел, чтобы Spring обрабатывала всю аутентификацию и разрешение против KeyCloak. Таким образом, я настроил: < /p>
spring:
security:
oauth2:
client:
registration:
keycloak:
clientId:
clientSecret:
scope: openid
provider:
keycloak:
issuerUri:
user-name-attribute: preferred_username
< /code>
и установите конфигурацию OAuth2: < /p>
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
).permitAll()
.anyRequest().authenticated()
).oauth2Login(configurer -> {
configurer.userInfoEndpoint(customizer -> customizer.userAuthoritiesMapper(customGrantedAuthoritiesMapper()));
configurer.loginPage("/oauth2/login");
configurer.defaultSuccessUrl("/oauth2/success");
configurer.failureUrl("/oauth2/error");
});
}
< /code>
Когда я получаю доступ к какой-то защищенной конечной точке (скажем, /API /тест) из React, пружина отправляет перенаправление (на заголовок местоположения) < /p>
http: // localhost: 8080/oauth2/login
, который затем перенаправляет на
BlockQuote>
http: // localhost: 8080/oauth2/adutrization/keycloak
При вызове непосредственно из браузера, его работает нормально, и я вижу форму входа в систему, могу входить в систему и получить доступ к моим защищенным ресурсам впоследствии с правильными ролями, установленными в принципал. Но как только происхождение запроса станет моим интернет-веб-приложением, последнее перенаправление на KeyCloak не удается из-за отсутствия CORS заголовка доступа Допустимые URL -адреса ресурсов, а также веб -происхождение внутри настройки клиента KeyCloak. Но ничего не сработало, я попытался < /p>
Установить URL -адрес frontend, не затягивая черты < /li>
set + и добавил http: / /localhost: 3000/ * на действительные URL -адреса перенаправления
Установить * в качестве теста, даже если он открывает лазейки безопасности
К сожалению, KeyCloak немного изменился в прошлом (конечно), поэтому большинство статей устарели. Но, наконец, я наткнулся на этот ресурс, в котором говорилось, что эта ошибка CORS указывает «неправильный бэкэнд/реализация API или используемый поток». Это работает как описано? Должен ли я изменить свою архитектуру, чтобы React обрабатывал аутентификацию с помощью KeyCloak, отправив токен JWT на пружину?
Большое спасибо за ваше мнение и идеи.>
Я работаю над следующей настройкой: < /p> [list] [*] Frontend: React on localhost: 3000 < /li> Бэкэнд: Spring Boot на Localhost: 8080 < /li> EIDC Endpoint: KeyCloak 21+ в качестве контейнера Docker (пробовал разные версии on localhost: 8090 < /li> < /ul > Поскольку я бэкэнд разработчик, и у меня мало опыта работы с React, я хотел, чтобы Spring обрабатывала всю аутентификацию и разрешение против KeyCloak. Таким образом, я настроил: < /p> spring: security: oauth2: client: registration: keycloak: clientId: clientSecret: scope: openid provider: keycloak: issuerUri: user-name-attribute: preferred_username < /code> и установите конфигурацию OAuth2: < /p> @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
).permitAll() .anyRequest().authenticated() ).oauth2Login(configurer -> { configurer.userInfoEndpoint(customizer -> customizer.userAuthoritiesMapper(customGrantedAuthoritiesMapper())); configurer.loginPage("/oauth2/login"); configurer.defaultSuccessUrl("/oauth2/success"); configurer.failureUrl("/oauth2/error"); }); } < /code> Когда я получаю доступ к какой-то защищенной конечной точке (скажем, /API /тест) из React, пружина отправляет перенаправление (на заголовок местоположения) < /p>
http: // localhost: 8080/oauth2/login
, который затем перенаправляет на BlockQuote> http: // localhost: 8080/oauth2/adutrization/keycloak
При вызове непосредственно из браузера, его работает нормально, и я вижу форму входа в систему, могу входить в систему и получить доступ к моим защищенным ресурсам впоследствии с правильными ролями, установленными в принципал. Но как только происхождение запроса станет моим интернет-веб-приложением, последнее перенаправление на KeyCloak не удается из-за отсутствия CORS заголовка доступа Допустимые URL -адреса ресурсов, а также веб -происхождение внутри настройки клиента KeyCloak. Но ничего не сработало, я попытался < /p>
Установить URL -адрес frontend, не затягивая черты < /li> set + и добавил http: / /localhost: 3000/ * на действительные URL -адреса перенаправления [*] Установить * в качестве теста, даже если он открывает лазейки безопасности [/list] К сожалению, KeyCloak немного изменился в прошлом (конечно), поэтому большинство статей устарели. Но, наконец, я наткнулся на этот ресурс, в котором говорилось, что эта ошибка CORS указывает «неправильный бэкэнд/реализация API или используемый поток». Это работает как описано? Должен ли я изменить свою архитектуру, чтобы React обрабатывал аутентификацию с помощью KeyCloak, отправив токен JWT на пружину? Большое спасибо за ваше мнение и идеи.>
Как мне исправить стандартное поведение Ларавельского святилища. Я использую Sanctum для приложения спа -салона.Route::get('/checktoken', function () {
info('ok');
return('token is ok');
})->middleware('auth:sanctum');
Как мне исправить стандартное поведение Ларавельского святилища. Я использую Sanctum для приложения спа -салона.Route::get('/checktoken', function () {
info('ok');
return('token is ok');
})->middleware('auth:sanctum');
Как мне исправить стандартное поведение Ларавельского святилища. Я использую Sanctum для приложения спа -салона.Route::get('/checktoken', function () {
info('ok');
return('token is ok');
})->middleware('auth:sanctum');
Я новичок в Spring Boot и пытаюсь реализовать вход OAuth2 с помощью Google и GitHub в своем приложении Spring Boot. Я хочу настроить страницу входа в систему так, чтобы она соответствовала моему стилю, но меня постоянно перенаправляют на страницу...
Контекст:
Я работаю над проектом Django, в котором реализовал аутентификацию пользователей с функциями профиля и выхода из системы. Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь получить доступ к профилю или ссылкам...