限制对某些视图的访问 - 初学者

时间:2014-03-25 03:00:53

标签: grails

我有Domain班,Controller名为Person。这个Controller有4个视图。 create.gspremove.gspshow.gspshowdetail.gsp

我想要做的是允许showdetail.gsp对所有观看者的读取权限,并限制对create.gspremove.gspshow.gsp观看次数的访问权限。只有Administrator应该能够访问这些页面。我怎么能在Grails中做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以使用安全过滤器来执行此操作,也可以使用Spring Security Core grails插件。 如果您想使用安全过滤器,可以执行以下操作:

  1. 在登录时为每个用户创建会话。   session [“user”] =“rohit”//用户名

  2. 添加安全过滤器:

     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;
           }
        }
    }
    
  3. 同样,您可以为那些您不希望向除admin以外的任何用户显示的操作添加安全过滤器。

答案 1 :(得分:0)

首先,用户需要登录,并且在成功进行身份验证后,应该正确维护会话。然后在控制器过滤器中,您可以编写一个拦截器,它可以允许基于授权规则访问某些操作。

所有这些以及更多内容已经与nimble plugin中的UI部分一起完成,非常简单。

阅读本文件: http://snimavat.github.io/nimble/guide/leverage.html#accesscontrol