我试图根据用户角色限制对我的控制器的访问。现在我可以通过以下方式使用security.xml文件来做到这一点Spring MVC,方法级别安全
<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)带标签的控制器。这是问题 – LynAs