WEB开发网
开发学院软件开发Java 精通 Grails: 身份验证和授权 阅读

精通 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
精通 Grails: 身份验证和授权

图片看不清楚?请点击这里查看原图(大图)。

基本授权

现在 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 的形式被公开给最终用户;方法则无法从浏览器中进行访问。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:精通 Grails 身份

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接