1
、
在系统已开始运行时首先需要创建用户角色,在创建用户角色时,用户角色名称默认以“
ROLE_
”开头。
在用户注册时,系统文件
DefaultSecurityConfig.groovy
中定义注册用户默认的用户角色为
ROLE_USER
:“
defaultRole = 'ROLE_USER'
”。如果需要更改注册用户默认的用户角色可以在
SecurityConfig.groovy
中,重新写明“
defaultRole = '
注册用户默认角色
'
”,但是要求填写的“注册用户默认角色”必须在
Role
管理中已经提前被保存了。
2
、
在注册时,在注册页面中可输入验证码信息,默认的注册码信息为大写的
6
位字母,黑色字体,在注册用户输入时不区分大小写。这些验证码的信息都在
CaptchaController
中的
index
闭包中定义的,在实际应用中可根据实际情况设定。
3
、目前用户、角色信息已经存在。用户可自己注册,也可在
User
管理中进行角色修改,此时已建立用户――角色关系。
4
、角色――资源关系
Acegi
中管理角色――资源关系有
3
种方式:
1)
使用
Requestmap
的
Domain
类:
前提条件:在
SecurityConfig.groovy
文件中添加:
useRequestMapDomainClass = true
useControllerAnnotations = false //
这个为
true
,则表示支持第
3
种方式,这
2
种方式不能并存。
在页面中添加新的
Requestmap
类,在填写
url
时一定要按小写字母的方式书写。
在保存成功后,以
RORL_ADMIN
的用户身份登录,在访问
role
下的请求,则会被拒绝。
2
)在
SecurityConfig.groovy
(
DefaultSecurityConfig.groovy
)文件中定义静态字符串:
requestMapString = """
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/login/**=IS_AUTHENTICATED_ANONYMOUSLY
/admin/**=ROLE_USER
/book/test/**=IS_AUTHENTICATED_FULLY
/book/**=ROLE_SUPERVISOR
/**=IS_AUTHENTICATED_ANONYMOUSLY
"""
注:在写明
url
中必须将
url
小写才能正确运行,同时要求在
SecurityConfig.groovy
文件中写明:
useRequestMapDomainClass =false
(表示不支持
Requestmap
的
Domain
类方式)
3
)在
Controller
中使用注释
前提条件:如果要是使用这个方式必须在
SecurityConfig.groovy
文件中添加:
useRequestMapDomainClass = false
useControllerAnnotations = true
这个方式与
Requestmap
的
Domain
类不能一起使用。
在要限制的
Controller
类中使用注释:
class RoleController {
@Secured(['ROLE_ADMIN'])
def index = {
render 'Secure access only'
}
}
此时以角色
ROLE_USER
的用户身份登录,访问
role
时则会被拒绝.
注:当在
Controller
与
Action
同时使用此方式时
,Action
下的注释有效
.