Я пытался создать клиент OAuth 2 с помощью Spring Boot 2. Но даже самый простой официальный пример не работает так, как должен, потому что мой пользователь не проходит аутентификацию и входит в цикл входа в систему.
Я клонировал первый официальный пример Spring Boot OAuth 2: https://github.com/spring-guides/tut-spring-boot-oauth2/tree/master/simple
Его цель - аутентифицировать пользователя через внешний сервер аутентификации OAuth (в примере это Facebook).Единственное, что я изменил, - это использование Github вместо Facebook.
После действительной аутентификации Github и предоставления клиенту возможности использовать ресурсы Github, Github перенаправляет обратно на localhost: 8080 с кодом и параметром состояния.Но клиент регистрирует:
Access is denied (user is anonymous); redirecting to authentication entry point
После этого начинается цикл входа в систему: клиентское программное обеспечение перенаправляет обратно на Github, который перенаправляет обратно на клиентское программное обеспечение.
Любые идеи, почему Spring Bootклиентское программное обеспечение не проходит аутентификацию правильно после аутентификации в Github?
Класс приложения:
@SpringBootApplication
@EnableOAuth2Sso
public class SocialApplication {
public static void main(String[] args) {
SpringApplication.run(SocialApplication.class, args);
}
}
application.yml:
security:
oauth2:
client:
clientId: (find it in the tutorial)
clientSecret: (find it in the tutorial)
accessTokenUri: https://github.com/login/oauth/access_token
userAuthorizationUri: https://github.com/login/oauth/authorize
clientAuthenticationScheme: form
resource:
userInfoUri: https://api.github.com/user
logging:
level:
org.springframework.security: DEBUG
org.springframework.web: DEBUG