我只需要在我的一个控制器方法中添加一个基本的auth,其他方法没有auth,但仍然有一个 @PreAuthorize
以检查参数是否有效。
我的问题是,httpbasic转换401中预授权引发的所有异常(有些应该是403,等等)。我觉得我所有的端点都在一个基本的auth下,而不仅仅是我使用的那些 @Secured
我怎样才能避免呢?
我的代码:
@Controller
class MyController {
@Secured("BASIC_AUTHENTIFIED")
public void someMethodOnlyForAuthentified(){...}
@PreAuthorize("check(parameters)")
public void someMethodForEveryone(List<String> parameters){...}
}
在我的安全配置中:
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser(login).password(password).roles("BASIC_AUTHENTIFIED");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.authorizeRequests().antMatchers("/**").permitAll()
.anyRequest().authenticated()
.and().httpBasic()
.and().csrf().disable();
}
暂无答案!
目前还没有任何答案,快来回答吧!