【发布时间】:2014-01-02 20:05:40
【问题描述】:
我正在尝试根据用户角色限制对我的控制器的访问。现在我可以通过以下方式使用 security.xml 文件来做到这一点
<http use-expressions="true">
<intercept-url pattern="/**" access="hasRole([ROLE_ADMIN,ROLE_USER])" />
</http>
但我不想这样做。而是我会写
<http use-expressions="true">
<intercept-url pattern="/**" access="isAuthenticated()"/>
</http>
在控制器中
@RequestMapping("/test")
@PreAuthorize("hasRole('ROLE_USER')")
public String test() {
return "test";
}
@RequestMapping("/testadmin")
@PreAuthorize("hasRole('ROLE_ADMIN')")
public String testAdminPage() {
return "testadmin";
}
现在 ROLE_USER 可以访问两个(ROLE_ADMIN 和 ROLE_USER)标记的控制器。这就是问题。
并且基于这个testadmin.jsp只能被ROLE_ADMIN类型的用户查看,test.jsp只能被“ROLE_USER”类型的用户查看。
总结一下,我想从控制器控制它,而不是在 xml 文件中编写访问代码。
我该怎么做??
【问题讨论】:
-
究竟什么不起作用?
-
ROLE_USER 可以访问两个(ROLE_ADMIN 和 ROLE_USER)标记的控制器。这就是问题
标签: spring spring-mvc spring-security