Проблема входа vaadin OAuth2 с весенней загрузкой 2
Я следил за этим замечательным руководством, чтобы узнать о входе в систему Spring Boot OAuth2:
https://spring.io/guides/tutorials/spring-boot-oauth2/
За пару минут все заработало.
У меня уже есть рабочее приложение с Spring Boot версии 2.1.7 и Vaadin framework версии 14.0.7 в качестве интерфейса. Я попытался добавить в это приложение логин OAuth2, но социальный вход не работает.
Я пробовал другие руководства, например:
- https://docs.spring.io/spring-security-oauth2-boot/docs/current/reference/htmlsingle/
- https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide
- https://spring.io/projects/spring-security-oauth
- https://cloud.spring.io/spring-cloud-security/reference/html/
Я добавил столько зависимостей, что это кажется даже бесполезным:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
Я даже пытался добавить:
@EnableOAuth2Client
@EnableOAuth2Sso
к моему WebSecurityConfigurerAdapter
, но вроде ничего не работает.
При запуске приложение пытается добавить какой-нибудь фильтр безопасности OAuth2:
o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@25ea859, org.springframework.security.web.context.SecurityContextPersistenceFilter@746ca7d7, org.springframework.security.web.header.HeaderWriterFilter@380d2564, org.springframework.security.web.authentication.logout.LogoutFilter@65f6b2ee, org.springframework.security.oauth2.client.filter.OAuth2ClientAuthenticationProcessingFilter@d1908ea, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@8ec9dd0, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@591bbfac, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@4dfa0158, org.springframework.security.web.session.SessionManagementFilter@7fe87726, org.springframework.security.web.access.ExceptionTranslationFilter@2a3ac8d2, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@50705e7c]
Я вижу этот класс в цепочке:org.springframework.security.oauth2.client.filter.OAuth2ClientAuthenticationProcessingFilter
Итак, среда Spring Boot заметила мои усилия и добавила фильтр в цепочку.
Когда приложение запустилось, пробую войти через соцсети, но ничего не работает. Я пытаюсь перейти по этим URL-адресам:
- http: // локальный:8080 / oauth2 / авторизация / github
- http: // локальный:8080 / логин / oauth2 / код / github
Но они дают мне HTTP-статус 500 - внутренняя ошибка сервера с этим сообщением в журнале:com.vaadin.flow.router.NotFoundException: No route found for given navigation target!
Это означает, что структура Vaadin взяла на себя управление и пытается управлять этими адресами.
Уже два дня пытаясь найти какое-то решение, я действительно в отчаянии. Не могли бы вы дать мне несколько советов, которые привели бы к моей цели - социальный вход в систему под Vaadin?