Проблема цикла перенаправления с аутентификацией OpenID в Spring Boot 3.3JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема цикла перенаправления с аутентификацией OpenID в Spring Boot 3.3

Сообщение Anonymous »

Я работаю над REST API, используя Java 21 с Spring Boot 3.3, и пытаюсь реализовать аутентификацию через внешний сайт с использованием OpenID. Однако после входа на внешний сайт я сталкиваюсь с циклом перенаправления.
Вот краткий обзор процесса:
1- I перейдите по адресу localhost:41448/schedule/{id}.
2. Меня перенаправляют на myExternalWebsite.com, и я успешно вхожу в систему, используя свои учетные данные. Эта часть работает нормально!
3- POST на моем токене-uri с хорошим телом в порядке и возвращает ответ 200 OK
4- Я Меня перенаправляют на мой URL-адрес перенаправления (localhost: 41448/redirect-uri), но кажется, что мой контроллер так и не был достигнут. Вместо этого я вижу несколько перенаправлений на вкладке сети. У меня есть эта ошибка: ERR_TOO_MANY_REDIRECTS
Я боролся с этим всю последнюю неделю, теряясь в большом количестве документации (некоторая ее часть устарела).
Если вам нужна дополнительная информация или подробности, не стесняйтесь спрашивать!
Заранее благодарим за помощь!
Вот моя конфигурация application.yml:
security:
oauth2:
client:
registration:
esante:
client-id: MyId
client-secret: MyClientSecret
scope: openid
redirect-uri: "https://localhost:41448/redirect-uri"
authorization-grant-type: authorization_code
client-name: example
provider:
example:
authorization-uri: https://myExternalWebsite.integration.f ... nnect/auth
token-uri: https://myExternalWebsite.integration.f ... nect/token
user-info-uri: https://myExternalWebsite.integration.f ... t/userinfo
issuer-uri: https://myExternalWebsite.integration.fr/realms/sas


А вот моя конфигурация безопасности:
@EnableWebSecurity
public class SecurityConfig {

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(
authorizeRequests ->
authorizeRequests
.requestMatchers("/redirect-uri")
.permitAll()
.anyRequest()
.authenticated()
)
.oauth2Login(
oauth2Login ->
oauth2Login
.loginPage("https://myExternalWebsite.integration.fr") // OAuth2 login page
.defaultSuccessUrl("/redirect-uri", true) // Redirect after login
)
.requiresChannel(
channel ->
channel.anyRequest().requiresSecure()
);

return http.build();
}
}

Вот моя трассировка (этот журнал повторяется много раз):
HTTP POST https://myExternalWebsite.integration.f ... nect/token
Accept=[application/json, application/*+json]
Writing [{grant_type=[authorization_code], code=[{code_generate}], redirect_uri=[https://localhost:41448/redirect-uri]}] as "application/x-www-form-urlencoded;charset=UTF-8"
Response 200 OK
Reading to [org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse] as "application/json"
HTTP POST https://myExternalWebsite.integration.f ... nect/token
Accept=[application/json, application/*+json]
Writing [{grant_type=[authorization_code], code=[{code_generate}], redirect_uri=[https://localhost:41448/redirect-uri]}] as "application/x-www-form-urlencoded;charset=UTF-8"
Response 200 OK
Reading to [org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse] as "application/json"


Подробнее здесь: https://stackoverflow.com/questions/791 ... g-boot-3-3
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»