Gou*_*cha 18 spring spring-mvc spring-security
我在我的项目中使用弹簧和弹簧安全4.我必须使用ROLE_USER或ROLE_TIMER_TASK调用我的dao方法.
目前我正在使用此注释 -
@Secured({"ROLE_USER", "ROLE_TIMER_TASK"})
Run Code Online (Sandbox Code Playgroud)
这个@Secured注释只允许那些同时拥有这两个角色的用户,但是我想要由具有任何一个角色的用户调用此方法.
如果用户具有此角色中的任何一个角色并调用此方法,是否可以?
hol*_*s83 31
对于或,请使用@PreAuthorize注释:
@PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_TIMER_TASK')")
Run Code Online (Sandbox Code Playgroud)
在Spring Security版本4中,ROLE_前缀可以省略:
@PreAuthorize("hasRole('USER') or hasRole('TIMER_TASK')")
Run Code Online (Sandbox Code Playgroud)
确保在安全配置中启用了批注前和批注后.
小智 6
要通过上述任何角色调用该方法,请使用:
@PreAuthorize("hasAnyRole('ROLE_USER','ROLE_TIMER_TASK')")
Run Code Online (Sandbox Code Playgroud)
并在安全类中启用注释前和注释:
@EnableGlobalMethodSecurity(prePostEnabled = true)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14990 次 |
| 最近记录: |