Я изо всех сил пытаюсь обновить приложение с Spring Boot 1.5 до Spring Boot 2, которое использует OAuth и пользовательский сервер авторизации.
Поток OAuth работает правильно, используя сервер авторизации и его весеннюю загрузку 1.5.настроить.Однако после перехода на весеннюю загрузку 2 (в настоящее время 2.1.3).
Я получаю бесконечное перенаправление между сервером авторизации и клиентским приложением.Перенаправления выполняются следующим образом:
http://localhost:8080/
http://localhost:8080/login
https://auth.example.com/oauth/authorize?...
http://localhost:8080/login?code=[code1]&state=[state]
http://localhost:8080/login
https://auth.example.com/oauth/authorize?...
http://localhost:8080/login?code=[code1]&state=[state]
http://localhost:8080/login
https://auth.example.com/oauth/authorize?...
http://localhost:8080/login?code=[code1]&state=[state]
http://localhost:8080/login
https://auth.example.com/oauth/authorize?...
http://localhost:8080/login?code=[code1]&state=[state]
...
Как вы можете видеть, как только сервер аутентификации перенаправляет обратно на имя входа с кодом авторизации в строке запроса, клиентское приложение просто перенаправляет обратно на /login
перезапусквесь процесс, затем он перенаправляется бесконечно, пока браузер не вызывает остановку.
Я разобрал приложение до гола, вот моя конфигурация:
Applicaiton.java
@SpringBootApplication
public class Application
{
public static void main( String[] args )
{
SpringApplication.run( AdminApplication.class, args );
}
}
SecurityConfig.java
@Configuration
@EnableOAuth2Sso
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
@Override
protected void configure( HttpSecurity http ) throws Exception
{
http.antMatcher( "/**" )
.authorizeRequests()
.antMatchers( "/assets/**", "/app/**", "/login*" ).permitAll()
.anyRequest().authenticated();
}
}
application.yml
security:
oauth2:
client:
clientId: xxxxxx
clientSecret: xxxxx
accessTokenUri: https://auth.example.com/oauth/token
userAuthorizationUri: https://auth.example.com/oauth/authorize
resource:
userInfoUri: https://auth.example.com/user