2

我希望每个不在路径下的 url/cobrands/fdt密码请求。例如,如果我要求/fdt/name我不应该被要求进行 http 身份验证。

public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
 /** code **/

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.exceptionHandling().authenticationEntryPoint(entryPoint()).and()
                .authorizeUrls()
                .antMatchers("/**").hasAnyAuthority("wf_cobrand_lettura", "wf_cobrand_fdt")
                .antMatchers("/cobrands/*").permitAll()
                .antMatchers("/fdt/*").permitAll()
                .and()
                .httpBasic();

    }

}
4

1 回答 1

2

匹配器按顺序处理,因此您的

.antMatchers("/**")

捕获所有请求,并且永远不会评估剩余的两个匹配器。

这么说吧:

http.exceptionHandling().authenticationEntryPoint(entryPoint()).and()
            .authorizeUrls()
            .antMatchers("/cobrands/*").permitAll()
            .antMatchers("/fdt/*").permitAll()
            .antMatchers("/**").hasAnyAuthority("wf_cobrand_lettura", "wf_cobrand_fdt")
            .and()
            .httpBasic();
于 2013-07-26T09:44:16.123 回答