我已經在控制器方法中實現了彈簧安全性。如何檢查方法級別彈簧安全
下面是我的春天的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