我有一个Domain
类和Controller
名为Person
。这Controller
有4意见。 create.gsp
,remove.gsp
,show.gsp
,showdetail.gsp
。限制访问某些意见 - 初学者
我想要做的就是允许读取权限showdetail.gsp
给所有观众和限制create.gsp
,remove.gsp
和show.gsp
视图的访问。只有Administrator
应该能够访问这些页面。我如何在Grails中做到这一点?
我有一个Domain
类和Controller
名为Person
。这Controller
有4意见。 create.gsp
,remove.gsp
,show.gsp
,showdetail.gsp
。限制访问某些意见 - 初学者
我想要做的就是允许读取权限showdetail.gsp
给所有观众和限制create.gsp
,remove.gsp
和show.gsp
视图的访问。只有Administrator
应该能够访问这些页面。我如何在Grails中做到这一点?
你可以使用安全过滤器来做到这一点,或者你可以使用Spring Security Core grails插件。 如果你想用的保安过滤器,你可以做到以下几点:
在登录时每个用户创建会话。 会话[“用户”] =“罗希特” //用户名
添加安全过滤器:
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之外的任何用户展示。
首先,用户需要登录,认证成功后,会话应该保持正确。然后在控制器过滤器中,您可以编写一个拦截器,该拦截器可以根据授权规则访问某些操作。
所有这些以及更多已经在nimble plugin中与UI部分一起完成,这很容易。
阅读该文档: http://snimavat.github.io/nimble/guide/leverage.html#accesscontrol
您可以使用[春安芯(http://grails.org/plugin/spring-security-core)Grails的插件。插件提供基于角色的认证。 [插件手册](http://grails-plugins.github.io/grails-spring-security-core/docs/manual/)可以适当地指导。 – dmahapatro