我有Domain
班,Controller
名为Person
。这个Controller
有4个视图。 create.gsp
,remove.gsp
,show.gsp
,showdetail.gsp
。
我想要做的是允许showdetail.gsp
对所有观看者的读取权限,并限制对create.gsp
,remove.gsp
和show.gsp
观看次数的访问权限。只有Administrator
应该能够访问这些页面。我怎么能在Grails中做到这一点?
答案 0 :(得分:0)
您可以使用安全过滤器来执行此操作,也可以使用Spring Security Core grails插件。 如果您想使用安全过滤器,可以执行以下操作:
在登录时为每个用户创建会话。 session [“user”] =“rohit”//用户名
添加安全过滤器:
PersonFilters(controller: 'person', action: 'create') {
before = {
// code to be change
if(!session["user"]) {
//flash.message = "Your session has been expired. Please login to continue."
redirect(controller: "login", action:"index")
return false;
} else if(session["user"] && session["user"] != "admin"){
// redirect to some action
// redirect(controller: "", action:"index")
return false;
}
}
}
同样,您可以为那些您不希望向除admin以外的任何用户显示的操作添加安全过滤器。
答案 1 :(得分:0)
首先,用户需要登录,并且在成功进行身份验证后,应该正确维护会话。然后在控制器过滤器中,您可以编写一个拦截器,它可以允许基于授权规则访问某些操作。
所有这些以及更多内容已经与nimble plugin中的UI部分一起完成,非常简单。
阅读本文件: http://snimavat.github.io/nimble/guide/leverage.html#accesscontrol