Jan*_*Jan 8 grails spring-security
我正在为我的应用程序开发一个菜单,它应该只能显示当前用户可以访问的控制器(数据库中定义的请求映射).
如何检查当前用户是否可以访问特定的控制器和操作?
在视图中检查角色:Spring安全插件提供ifAllGranted,ifAnyGranted,ifNoneGranted等标签来检查角色
例如,要检查登录用户的管理员角色:
<sec:ifLoggedIn>
<sec:ifAllGranted roles="ROLE_ADMIN">
Admin resource
</sec:ifAllGranted>
</sec:ifLoggedIn>
Run Code Online (Sandbox Code Playgroud)
(在grails-2.2.2和springSecurityCorePlugin-1.2.7.3中测试)
小智 0
您必须配置文件 config/SecurityConfig.groovy (如果它不存在,请创建它,这会覆盖默认的安全配置)
添加此条目:
requestMapString = """\
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/=IS_AUTHENTICATED_REMEMBERED
/login/auth=IS_AUTHENTICATED_ANONYMOUSLY
/login/authajax=IS_AUTHENTICATED_ANONYMOUSLY
/login/authfail=IS_AUTHENTICATED_ANONYMOUSLY
/js/**=IS_AUTHENTICATED_ANONYMOUSLY
/css/**=IS_AUTHENTICATED_ANONYMOUSLY
/images/**=IS_AUTHENTICATED_ANONYMOUSLY
/plugins/**=IS_AUTHENTICATED_ANONYMOUSLY
/**=IS_AUTHENTICATED_REMEMBERED
"""
Run Code Online (Sandbox Code Playgroud)
这意味着您必须登录才能进入该网站。但所有资源(css、js、图像等)都是在未经身份验证的情况下访问的。
如果您只需要特定角色,请输入特定控制器:例如,对于 UserController:
/user/**=ROLE_ADMIN
/role/**=ROLE_ADMIN
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:http://www.grails.org/AcegiSecurity+Plugin+-+Securing+URLs
问候
| 归档时间: |
|
| 查看次数: |
10201 次 |
| 最近记录: |