1在系统已开始运行时首先需要创建用户角色,在创建用户角色时,用户角色名称默认以“ROLE_”开头。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
在用户注册时,系统文件DefaultSecurityConfig.groovy中定义注册用户默认的用户角色为ROLE_USER:“defaultRole = 'ROLE_USER'”。如果需要更改注册用户默认的用户角色可以在SecurityConfig.groovy中,重新写明“defaultRole = '注册用户默认角色'”,但是要求填写的“注册用户默认角色”必须在Role管理中已经提前被保存了。

2在注册时,在注册页面中可输入验证码信息,默认的注册码信息为大写的6位字母,黑色字体,在注册用户输入时不区分大小写。这些验证码的信息都在CaptchaController中的index闭包中定义的,在实际应用中可根据实际情况设定。

3、目前用户、角色信息已经存在。用户可自己注册,也可在User管理中进行角色修改,此时已建立用户——角色关系。
4、角色——资源关系
Acegi中管理角色——资源关系有3种方式:
1)    使用RequestmapDomain类:
前提条件:在SecurityConfig.groovy文件中添加:

useRequestMapDomainClass = true
useControllerAnnotations = false   //这个为true,则表示支持第3种方式,这2种方式不能并存。
在页面中添加新的Requestmap类,在填写url时一定要按小写字母的方式书写。

 

在保存成功后,以RORL_ADMIN的用户身份登录,在访问role下的请求,则会被拒绝。
2)在SecurityConfig.groovyDefaultSecurityConfig.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(表示不支持RequestmapDomain类方式)
3)在Controller 中使用注释
前提条件:如果要是使用这个方式必须在SecurityConfig.groovy文件中添加:

useRequestMapDomainClass = false
useControllerAnnotations = true
这个方式与RequestmapDomain类不能一起使用。
在要限制的Controller类中使用注释:
class RoleController {
    @Secured(['ROLE_ADMIN'])
       def index = {
              render 'Secure access only'
       }
}
此时以角色ROLE_USER的用户身份登录,访问role时则会被拒绝.
注:当在ControllerAction同时使用此方式时,Action下的注释有效.