2015-08-05 3 views
3

Я пытаюсь настроить Spring Security. У меня есть конфигурация последующая:Разрешить получение запроса, но не после запроса (Spring Security)

@Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
       .csrf().disable() 
       .authorizeRequests() 
        .antMatchers("/auth**").permitAll() 
       .and() 
       .authorizeRequests() 
        .antMatchers("/**").authenticated() 
        .anyRequest().permitAll() 
       .and() 
        .httpBasic() 
       .and() 
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) 
       .and() 
        .userDetailsService(userDetailsService()); 
    } 

Я могу послать GET-запрос ссылки начали с «/ авт», но не могу отправить пост-запрос без аутентификации. Если удалить последующий код все в порядке:

.authorizeRequests() 
.antMatchers("/**").authenticated() 
.anyRequest().permitAll() 

Но мне нужно проверить подлинность на любой странице, кроме «/ Идент **»

ответ

0

Очень поздний ответ, но, как и большинство я ненавижу приходить на вопросы с не ответы. Я думаю, вы спрашиваете, как предотвратить аутентификацию/auth **.

Вы должны переопределить другой метод конфигурации:

@Override 
public void configure(WebSecurity web) throws Exception { 
    web.ignoring().antMatchers(HttpMethod.POST, "/auth/**"); 
} 

Это не будет выполнять какие-либо проверки подлинности для этого URL. Другими словами, это общедоступный URL-адрес, посредством которого люди могут отправлять запрос пароля напоминания, например.

Смежные вопросы