java - Spring Security如何允许匿名访问大多数站点限制某些操作

标签 java spring jakarta-ee spring-mvc spring-security

我希望有与 Stack Overflow 类似的行为,您可以匿名查看网站的大部分内容,并且只需要用户角色/身份验证来执行某些操作。基本上是匿名读取和受限写入。 我希望我能做的是指定匿名访问我的 security-config.xml 并注释需要正确用户角色的各种方法。 配置:

<global-method-security secured-annotations="enabled" />

<http auto-config='true'>
    <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <http-basic />
</http>

方法声明

    @Secured("ROLE_USER")
    @RequestMapping(value = "/{estabID}", method = RequestMethod.GET)
    public ModelAndView getEstablishmentPage(@PathVariable String estabID) { .... }

但是,使用此配置时,系统不会提示我输入基本身份验证凭据。如果我将配置中的访问属性更改为 ROLE_USER ,一切都会按预期工作,我会遇到身份验证挑战。

默认情况下,通过身份验证的用户完成某些操作的匿名访问的最佳方式是什么?

最佳答案

正如卢克·泰勒在评论中提到的那样,该问题已通过以下 this FAQ 解决。

关于java - Spring Security如何允许匿名访问大多数站点限制某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747633/

相关文章:

java - Derby 中数据库或外部 jar 中的过程

java - Spring MVC 自定义转换报错信息

jakarta-ee - GlassFish 4.1 启动警告 : javax. ejb.PostActivate 和 javax.ejb.PrePassivate 未找到

java.lang.nullpointerException?

java - 使用边缘检测进行图像匹配

java - 在 Spring Boot 中提供通用异常处理程序,将所有异常转换为 HTTP 500

javascript - 找不到创建命令行启动器 Intellij

java - 以循环方式从 map /任何集合中获取值

jsf - "IllegalArgumentException: Can not set [EJB interface] field [managed bean field] to com.sun.proxy.$Proxy[some number]"与 OmniFaces 的@Eager

java - util.Collections 是如何使用的