拦截网址不适用于弹簧安全角度

时间:2016-03-21 09:36:04

标签: angularjs spring spring-security

我正在尝试管理用户身份验证,我的配置是:

<security:intercept-url pattern="/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')" />
                  <security:intercept-url pattern="/public/**" access="isAuthenticated() and hasRole('ROLE_USER')" />

我的问题是只有管理员可以登录但其他人我收到此消息“Etat HTTP 403 - 访问被拒绝”这个问题的任何解决方案?

1 个答案:

答案 0 :(得分:0)

这里的问题是第一条规则限制太多,并且在所有网址Spring安全检查用户是否有ROLE_ADMIN。现在我不知道您的安全要求是什么,但考虑到第一个停止评估的规则是第一次停止您的请求的过滤器并拒绝其他用户的呼叫。

你可以这样试试:

<security:intercept-url pattern="/public/**" access="hasRole('ROLE_USER')" />
<security:intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')" />

在这种情况下,您说公共网址具有用户具有“用户角色”的安全要求,如果此要求不正确,则评估是否为ADMIN,即第二条规则。

如果你注意我删除了isAuthenticated(),在这种情况下我只检查记录用户的角色。

我希望这可以帮到你