Spring Boot OAuth2 SSO не работает, когда для authorizeRequests antMatcher не задан корневой URL - PullRequest
0 голосов
/ 28 октября 2018

Я пытался создать приложение с Spring Boot, которое использует Google в качестве поставщика удостоверений для входа в систему.
Следующая конфигурация (с использованием Spring Security), кажется, работает для этого:

@Configuration
@EnableOAuth2Sso
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.
                antMatcher("/**")
                    .authorizeRequests()
                .antMatchers("/", "/login**","/callback/", "/error**")
                    .permitAll()
                .anyRequest()
                    .authenticated();
    }
}

Однако я действительно хочу защитить только небольшую часть веб-сайта (например, все, что находится в / secure / path).
Поэтому я подумал, что изменение antMatcher, для которого авторизованы запросы, будет работать для этого:

...
@Override
protected void configure(HttpSecurity http) throws Exception {
    http.
            antMatcher("/secured**")
                .authorizeRequests()
...

Когда я пытаюсь это сделать, приложение по-прежнему перенаправляет меня на / login, но на этой странице мне выдается 404. Вместо перенаправления на серверы Google.

Конечно, я могу добавить все публичные URL-адреса наallowAll antMatcher, но это кажется громоздким при каждом добавлении нового.
Размещение всех публичных объектов в пути / public ** также не то, что я хотел бы сделать, поскольку в URL это будет выглядеть странно

Может ли кто-нибудь пролить свет на то, что здесь происходит, или может предложить альтернативные решения?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...