Java spring security没有根据角色筛选对资源的访问
我使用的是SpringSecurity 3.1.4。由于某些原因,未正确筛选对资源的访问。我的安全xml文件如下所示Java spring security没有根据角色筛选对资源的访问,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我使用的是SpringSecurity 3.1.4。由于某些原因,未正确筛选对资源的访问。我的安全xml文件如下所示 <http auto-config="true"> <intercept-url pattern="/**" access="ROLE_USER"/> <intercept-url pattern="/admin/**" access="ROLE_ADMIN"/> ... </http> <http auto-conf
<http auto-config="true">
<intercept-url pattern="/**" access="ROLE_USER"/>
<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
...
</http>
<http auto-config="true">
<intercept-url pattern="/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
...
</http>
...
如您所见,我想用这个配置表达的是,用户可以访问任何资源,除非他们正在访问映射到/admin/something的资源
当我仅以用户角色_user(在数据库中验证,因为我使用的是jdbc用户服务)的身份登录时,我仍然可以将浏览器指向
/myapp/admin/default
看看所有的内容
然后,我将安全xml更改为如下所示
<http auto-config="true">
<intercept-url pattern="/**" access="ROLE_USER"/>
<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
...
</http>
<http auto-config="true">
<intercept-url pattern="/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
...
</http>
...
当我以用户角色_user的身份登录时,我得到的HTTP 403访问被拒绝
我的问题是
感谢您的帮助。尝试将管理模式置于更通用的/**模式之前。从docs()中,最具体的模式需要在模式列表中声明得更高
<http auto-config="true">
<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/**" access="ROLE_USER"/>
...
</http>
...
尝试将管理模式置于更通用的/**模式之前。从docs()中,最具体的模式需要在模式列表中声明得更高
<http auto-config="true">
<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/**" access="ROLE_USER"/>
...
</http>
...
尝试将管理模式置于更通用的/**模式之前。从docs()中,最具体的模式需要在模式列表中声明得更高
<http auto-config="true">
<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/**" access="ROLE_USER"/>
...
</http>
...
尝试将管理模式置于更通用的/**模式之前。从docs()中,最具体的模式需要在模式列表中声明得更高
<http auto-config="true">
<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/**" access="ROLE_USER"/>
...
</http>
...