我已尝试过十几种不同的配置,但我无法让Spring Security执行我正在尝试的用例。 我希望安全性能够执行以下操作
在指定的网址上使用基本身份验证(/ api / service / **)
如果与所有其他网址一起发送,请勿验证基本身份验证
目前每当我向/ api / service / **之外的任何网址发送请求时,如果我发送基本身份验证令牌然后尝试对其进行身份验证,那么它的工作正常。我不希望所有其他网址完全忽略该令牌。有没有办法做到这一点?
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests().antMatchers("/api/service/**").hasRole("ROLE_SERVICE")
.and()
.httpBasic().authenticationEntryPoint(authenticationEntryPoint)
.and()
.exceptionHandling().accessDeniedHandler(new RestAccessDeniedHandler())
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
我还尝试添加.authorizeRequests().antMatchers("**").anonymous()
和.authorizeRequests().antMatchers("**").permitAll()
,但这些都没有完成。我也试过删除.httpBasic()但是没有进行验证。
非常感谢任何帮助。
使用:Spring Security 3.2.9.RELEASE和Spring MVC 3.2.13.RELEASE。
答案 0 :(得分:-1)
使用此
.authorizeRequests()
.antMatchers("/api/service/**").hasRole("ROLE_SERVICE")
.anyRequest().permitAll()