# grails3-security
**Repository Path**: chenmin_study/grails3-security
## Basic Information
- **Project Name**: grails3-security
- **Description**: Grails3.3.5集成spring security 3.2.1实现基于角色组的权限
- **Primary Language**: Groovy
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2018-12-02
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#Grails3.3.5集成spring security 3.2.1实现基于角色组的权限
>创建项目,build.gradle中加入依赖,通过命令创建,通过此命令会在com.system下自动建表,共7张表
```
compile 'org.grails.plugins:spring-security-core:3.2.0.M1'
```
```
s2-quickstart com.system User Role RequestMap --groupClassName=RoleGroup
生成如下7张表
RequestMap
Role
RoleGroup
RoleGroupRole
User
UserRole
UserRoleGroup
```
权限交给RequestMap表管理,添加一个权限后需要清理缓存,或者禁用缓存
```
方法中注入
def springSecurityService
//清理了缓存
springSecurityService.clearCachedRequestmaps()
```
项目用户,角色,权限初始化通过service,在BootStrap.groovy的init方法中调用服务初始化
```
def requestMapService
def init {
requestMapService.init()
}
```
若要允许允许通过get方式注销登录,则需在application.groovy中添加
```
grails.plugin.springsecurity.logout.postOnly = false
```
页面常用标签
```
//未登录
登录
//已登录
...
...
...
I'm a user.
The requestURL is "/admin/user"
```
用户名密码有两个`用户1:admin admin` `用户2:test test`,详情查看requestMapService服务类
新增功能说明
1.新增邮箱登录支持,支持邮箱或用户名登录
2.新增登录验证码,验证码是在后端验证的,验证码通过cookie保存,所以访问只能通过127.0.0.1进行访问
效果图
