Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring security如何允许匿名访问限制某些操作的大多数站点_Java_Spring_Jakarta Ee_Spring Mvc_Spring Security - Fatal编程技术网

Java Spring security如何允许匿名访问限制某些操作的大多数站点

Java Spring security如何允许匿名访问限制某些操作的大多数站点,java,spring,jakarta-ee,spring-mvc,spring-security,Java,Spring,Jakarta Ee,Spring Mvc,Spring Security,我希望有一个类似于Stack Overflow的行为,您可以匿名查看大多数站点,并且只需要用户角色/身份验证来执行某些操作。基本上是匿名读取和受限写入。 我希望我能做的是指定匿名访问我的security-config.xml并注释需要适当用户角色的各种方法。 配置: 但是,对于此配置,系统不会提示我输入基本身份验证凭据。如果我将配置中的access属性更改为ROLE_USER,则一切正常,我将面临一个auth挑战 默认情况下,对于某些操作,使用经过身份验证的用户进行匿名访问的最佳方式是什么?正如

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

但是,对于此配置,系统不会提示我输入基本身份验证凭据。如果我将配置中的access属性更改为ROLE_USER,则一切正常,我将面临一个auth挑战


默认情况下,对于某些操作,使用经过身份验证的用户进行匿名访问的最佳方式是什么?

正如Luke Taylor在评论中提到的那样,问题是通过以下方式解决的

听起来好像没有应用全局方法安全性。您能否打开调试器,看看它是否正在遍历MethodSecurityInterceptor?很可能您遇到了本文中所述的问题。你也会发现之前讨论过这个问题。@luke你是对的,这正是问题所在,你想把它作为一个答案添加进来,让我接受吗?
<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) { .... }