我已经在控制器方法中实现了弹簧安全性。如何检查方法级别弹簧安全
下面是我的春天的security.xml
- >
<!-- URL pattern based security -->
<security:http auto-config="false" entry-point-ref="authenticationEntryPoint"
use-expressions="true">
<custom-filter ref="authenticationFilter" position="FORM_LOGIN_FILTER" />
<security:intercept-url access="hasAnyRole('ROLE_ADMIN','ROLE_USER')" pattern="/common/admin/**" />
<security:intercept-url pattern="/common/accounting/**" access="hasRole('ROLE_USER')" />
<security:logout logout-url="/j_spring_security_logout" invalidate-session="true" logout-success-url="/login"/>
</security:http>
下面是我的控制器
@Secured({"ROLE_ADMIN"})
@RequestMapping(value = "/common/admin/addAdmin", method = RequestMethod.GET)
public String add(ModelMap map) {
map.addAttribute(new Administrator());
return "/common/admin/addAdmin";
}
@Secured({"ROLE_ADMIN"})
@RequestMapping(value = "/common/admin/addAdmin", method = RequestMethod.POST)
public String processadd(
@ModelAttribute("administrator") Administrator administrator) {
this.administratorManager.addAdmin(administrator);
return "/common/admin/success";
}
我允许网址/通用/管理/ **为管理员和用户角色。但我在管理控制器中做了一些限制。当用户进入/ common/admin/*作为用户角色时,他可以但他也可以进入仅用于管理角色的方法。
我该如何解决?
谢谢!
hi ralph,我已经在security.xml中添加了。但检查安全性的方法不起作用。我该怎么做? –
sudo
2012-01-06 08:01:56
@sudo:请问你的问题是否合适 - 在问题文本中没有明确的问题,没有提示任何事情都没有按预期工作。 – Ralph 2012-01-06 11:44:25
我不同意'@ Secured'注释在功能上与'@ RolesAllowed'相同。如果你只是检查一个角色列表中的一个,那么这可能是真的,但'@ Secured'注解更强大,因为他们使用Spring Security的'AccessDecisionManager'和选举系统。这些属性不限于简单的角色。 – 2012-01-06 20:14:26