【发布时间】:2013-04-29 10:37:51
【问题描述】:
角色管理员的授权被拒绝访问整个系统 - 管理员和主页。所以我在 /main/home 拦截 URL 中添加了 ROLE_ADMIN。
这是安全xml
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/**" requires-channel="https" />
<intercept-url pattern='/main/home/' access="hasRole('ROLE_USER' 'ROLE_ADMIN')" />
<intercept-url pattern='/admin/admin/**' access="hasRole('ROLE_ADMIN')" />
<intercept-url pattern='/main/user/setter/settingpage' access="hasRole('ROLE_USER')" />
<intercept-url pattern='/main/user/setter/addpage' access="hasRole('ROLE_USER')" />
<intercept-url pattern='/login.jsp' access='IS_AUTHENTICATED_ANONYMOUSLY' />
<form-login login-page="/login.jsp" default-target-url="/main/home" authentication-failure-url="/auth/loginfail?error=true"/>
</http>
但这使得整个程序停止工作,因为当我运行代码时,错误是
解析表达式'hasRole('ROLE_USER' 'ROLE_ADMIN')'失败
当我删除ROLE_ADMIN 时,系统可以正常工作并且可以验证用户,而不是现在被拒绝访问所有页面的ROLE_ADMIN。在数据库中,我已经设置了角色,直到最近它还在工作。
【问题讨论】:
标签: spring security spring-mvc spring-security