Spring Security 和基本身份验证只有一个入口点:如何管理另一个端点上的错误

bfrts1fy  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(206)

我只需要在我的一个控制器方法中添加一个基本的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();
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题