0x01 Grarils 身份验证和权限拦截案例
2016-09-04 16:50
204 查看
本文将使用Grails 写一个实现简单的登陆身份验证和权限拦截的Demo
如果没有搭建环境的,请移步到上篇博文 http://blog.csdn.net/hadues/article/details/52423067
创建 shadowApp Grails Web应用
2.进入项目文件夹
3.创建用户实体类
Tips:
此命令执行成功后会生成两个文件
grails-app/domain/shadowapp/User.groovy
src/test/groovy/shadowapp/UserSpec.groovy
4.修改用户实体类
shadowApp\grails-app\domain\shadowapp\User.groovy
5.为用户生成增删改查功能
6.修改用户控制器
7.创建login.gsp
shadowApp\grails-app\views\user\login.gsp
8.创建登陆欢迎界面
shadowApp\grails-app\views\user\welcome.gsp
9.运行程序
如果没有搭建环境的,请移步到上篇博文 http://blog.csdn.net/hadues/article/details/52423067
创建 shadowApp Grails Web应用
grails create-app shadowApp
2.进入项目文件夹
cd shadowApp
3.创建用户实体类
grails create-domain-class User
Tips:
此命令执行成功后会生成两个文件
grails-app/domain/shadowapp/User.groovy
src/test/groovy/shadowapp/UserSpec.groovy
4.修改用户实体类
shadowApp\grails-app\domain\shadowapp\User.groovy
package shadowapp class User { /** account: 登陆用户名 password:登陆密码 name:登陆用户昵称 */ String account String password String name /** 下面是对表字段进行约束 unique:true 表示唯一标识,相当于为表设置主键 password:true 表示密码不可为空 name() 表示用户昵称可以为空 */ static constraints = { account(unique:true) password(password:true) name() } }
5.为用户生成增删改查功能
grails generate-all shadowapp.User
6.修改用户控制器
package shadowapp import static org.springframework.http.HttpStatus.* import grails.transaction.Transactional @Transactional(readOnly = true) class UserController { ... /** 当执行login action时会转向login.gsp */ def login(){} //身份验证 def authenticate(){ //查询数据库中账号和密码用于登陆比对 def user= User.findByAccountAndPassword(params.account,params.password) if(user){//如果账号密码正确进入欢迎界面 session.user=user flash.message="Hello ${user.name} !" redirect(controller:"user",action:"welcome") }else{//登陆失败,返回登陆界面 flash.message="Sorry, ${params.account},Please Try again !" redirect(controller:"user",action:"login") } } /** 注销登陆 */ def logout(){ flash.mesage="Good Bye ${session.user.name}" session.user=null redirect(controller:"user",action:"login") } //登陆成功界面 def welcome(){ } ...
7.创建login.gsp
shadowApp\grails-app\views\user\login.gsp
<!DOCTYPE html> <html> <head> <meta name="layout" content="main" /> <title>Login</title> </head> <body> <div class="body"> <h1>Login</h1> <g:if test="${flash.message}"> <div class="message">${flash.message}</div> </g:if> <g:form action="authenticate" method="post" > <div class="dialog"> <table> <tbody> <tr class="prop"> <td class="name"> <label for="login">Login:</label> </td> <td> <input type="text" id="account" name="account"/> </td> </tr> <tr class="prop"> <td class="name"> <label for="password">Password:</label> </td> <td> <input type="password" id="password" name="password"/> </td> </tr> </tbody> </table> </div> <div class="buttons"> <span class="button"> <input class="save" type="submit" value="Login" /> </span> </div> </g:form> </div> </body> </html>
8.创建登陆欢迎界面
shadowApp\grails-app\views\user\welcome.gsp
<!DOCTYPE html> <html> <head> <meta name="layout" content="main" /> <title>Login</title> <style type="text/css"> #loginHeader { float: right; color: #000000; } </style> </head> <body> <div id="header"> <div id="loginHeader"> <a href="/user/logout">注销</a> </div> </div> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <g:if test="${flash.message}"> <div class="message">${flash.message}</div> </g:if> </body> </html>
9.运行程序
grails run-app
相关文章推荐
- SpringMVC+Apache Shiro+JPA(hibernate)案例教学(四)基于Shiro验证用户权限,且给用户授权
- asp.net Forms身份验证和基于角色的权限访问
- 身份验证拦截,Ajax请求跨域重定向到页面后不加载,场景分析
- Shiro(1) 身份与权限验证
- 基于mvc5+ef6+Bootstrap框架实现身份验证和权限管理
- ASP.NET MVC:窗体身份验证及角色权限管理示例
- Forms身份验证以及基于角色的权限控制
- SpringMVC+Apache Shiro+JPA(hibernate)案例教学(二)基于SpringMVC+Shiro的用户登录权限验证
- 拦截验证每一个请求的权限
- shiro 简单的身份验证 案例
- Web用户的身份验证及WebApi权限验证流程的设计和实现
- 基于 Annotation 拦截的 Spring AOP 权限验证方法
- 通过Forms身份验证设置不同页面的访问权限
- SpringMVC+Apache Shiro+JPA(hibernate)案例教学(四)基于Shiro验证用户权限,且给用户授权
- SpringMVC+Apache Shiro+JPA(hibernate)案例教学(四)基于Shiro验证用户权限,且给用户授权
- 如何在 IIS 中为域身份验证配置 FTP 文件夹和权限
- asp.net core 身份认证/权限管理系统简介及简单案例
- asp.net Forms身份验证和基于角色的权限访问
- 基于身份验证票据的权限系统的实现
- 企业搭建统一身份验证服务器案例