Я разрабатываю пользовательскую страницу входа в систему Spring Security 5
, используя oauth2
.Поэтому я настроил настройки:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests().antMatchers("/").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login().loginPage("/login/oauth2").permitAll();
}
и создание controller
с @RequestMapping("/login/oauth2")
:
@GetMapping("/")
public String index() {
return "index";
}
@GetMapping("/login/oauth2")
public String login(Model model, OAuth2AuthenticationToken authentication) {
return "login";
}
Страница login.html
представляет собой обычную форму, которая перенаправляет на метод login
от контроллера:
<h1>Logowanie</h1>
<a>ZALOGUJ</a>
<a class="btn" href="/login/oauth2/code/google">Login</a>
При такой конфигурации OAuth2AuthenticationToken authentication
имеет значение null и, следовательно, аутентификация не может быть применена.При конфигурации по умолчанию Spring Security 5
все работает нормально.Пример, на котором я основывался, описан здесь: https://docs.spring.io/spring-security/site/docs/5.0.0.RELEASE/reference/htmlsingle/#oauth2login-advanced-login-page; section 31.1 OAuth 2.0 Login Page
.