精通 Grails: 身份验证和授权
2009-10-26 00:00:00 来源:WEB开发网核心提示: 清单 6. loginHeader <div> 的 CSS 格式#loginHeader{float:right;color:#fff;}重启 Grails 并以 jsmith 身份登录后,屏幕应该如图 3 所示: 图 3. 实际使用 Login TagLib图片看不清楚?请点击这里
清单 6. loginHeader <div> 的 CSS 格式#loginHeader {
float: right;
color: #fff;
}
重启 Grails 并以 jsmith 身份登录后,屏幕应该如图 3 所示:
图 3. 实际使用 Login TagLib
图片看不清楚?请点击这里查看原图(大图)。
基本授权
现在 Blogito 已经实现了身份验证,接下来是限制您所能执行的操作。例如,任何人都应当能够读取 Entry,但是只有登录用户能够创建、更新和删除 Entry。要达到这个目的,Grails 提供了一个 beforeInterceptor,顾名思义,它为您提供一个钩子,可以在调用目标闭包之前对行为进行授权。
将清单 7 中的代码添加到 EntryController:
清单 7. 向 EntryController 添加授权class EntryController {
def beforeInterceptor = [action:this.&auth, except:["index", "list", "show"]]
def auth() {
if(!session.user) {
redirect(controller:"user", action:"login")
return false
}
}
def list = {
//snip...
}
}
auth 和 list 之间微妙但重要的一点区别是 list 是一个闭包,而 auth 是一个私有方法(闭包在定义中使用等号;方法使用圆括号)。闭包以 URI 的形式被公开给最终用户;方法则无法从浏览器中进行访问。
- ››精通Photoshop之通道详解
- ››身份证函数 查看身份证地区信息(1)
- ››身份证函数 查看身份证地区信息(2)
- ››精通 Grails: 使用 Grails 进行单元测试(单元测试...
- ››精通 Grails: 创建自定义插件
- ››精通 Grails: 在企业中使用 Grails
- ››精通 Grails: Grails 与移动 Web
- ››精通 Grails: Grails 与遗留数据库
- ››精通 Grails: RESTful Grails
- ››精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
- ››精通 Grails: 用定制 URI 和 codec 优化 Grails 中...
- ››精通 Grails: 身份验证和授权
更多精彩
赞助商链接