我对 Spring Security 中的默认行为存在问题,即 Java Config 提供的授权请求。
http
....
.authorizeRequests()
.antMatchers("/api/test/secured/*").authenticated()
当我在没有登录(使用匿名用户)的情况下调用例如 /api/test/secured/user
时,它会返回 403 Forbidden。当匿名用户想要通过 authenticated()
或 @PreAuthorize
资源获得保护时,是否有一种简单的方法可以将状态更改为 401 Unauthorized?
最佳答案
从 Spring Boot 2 开始,Http401AuthenticationEntryPoint 类已被删除(参见 Spring Boot Issue 10725)。
使用带有 HttpStatus.UNAUTHORIZED 的 HttpStatusEntryPoint 代替 Http401AuthenticationEntryPoint:
http.exceptionHandling()
.authenticationEntryPoint(new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED));
https://stackoverflow.com/questions/30643029/
相关文章:
java - 我可以将来自 Maven 的属性(在 settings.xml 中定义的密码)注入(i
spring - 创建 ServletContext 资源中定义的名称为 'org.springfr
java - @Transactional(propagation=Propagation.REQU
java - Spring Security Configuration @Order 不是唯一异常
java - 如何让 Spring 打印出哪些 Spring 配置文件处于 Activity 状态?
java - 如何使用 Spring 为 JUnit 测试注入(inject) ServletCon
spring - Java EE 和 Spring 框架的区别