我是Grails的新手,并且使用一些Shiro安全性。我已经用登录页面做了一个小网站,如果登录成功,它会将我重定向到另一个登录页面。
现在我想实现Shiro Security。我已经在新的Grails项目上运行了Shiro的插件和快速入门应用程序。
我想要实现的是,如何使用快速入门文件和代码在我自己的页面上实现安全性。请指点一下。一点。从那个快速入门开始,我应该使用哪些文件,以及我应该进行哪些更改。?
等待一些积极的回应:)
发布于 2011-04-29 14:51:35
让我们先从一个新的应用开始:
grails create-app ShiroDemo
现在,通过将其添加到BuildConfig.groovy的插件部分来安装shiroby:
插件{编译":shiro:1.1.4“}
我们需要auth控制器和通配符领域:
grails create-auth-controller
grails create-wildcard-realm
现在,让我们在bootstrap.groovy
中创建一个具有所需角色和权限的虚拟用户
import org.apache.shiro.crypto.hash.Sha256Hash
class BootStrap {
def init = { servletContext ->
def roleUser = new ShiroRole(name:'USER')
roleUser.addToPermissions('auth:*')
roleUser.addToPermissions('controller:action')
roleUser.save(flush:true, failOnError: true)
def testUser = new ShiroUser(username:'kermit',passwordHash:new Sha256Hash("password").toHex())
testUser.addToRoles(roleUser)
testUser.save(flush:true, failOnError: true)
}
def destroy = {
}
}
看一下role.User.addToPermissions
行。在这里,您可以向控制器和操作授予权限。如果角色缺少权限,用户将被重定向至拒绝访问页面。你会在shiro插件页面上找到如何指定权限的一个很好的描述:http://www.grails.org/plugin/shiro你必须为你的应用程序的其余功能添加更多的权限。您也可以将这些权限直接添加给用户-有时对测试很有用,或者如果您不想为某些特殊情况设置新角色。
顺便说一句:请确保使用sha256hash,而不是sha1hash,因为它不能与当前shiro版本一起工作。
我们要做的最后一件事是创建/conf/SecurityFilters.groovy
类:
class SecurityFilters {
def filters = {
all(uri: "/**") {
before = {
// Ignore direct views (e.g. the default main index page).
if (!controllerName) return true
// Access control by convention.
accessControl()
}
}
}
}
这将为所有控制器安装访问控制,但不会安装直接视图(我们的索引页)。
现在试一试,运行你的项目:
grails run-app
希望这能有所帮助!
https://stackoverflow.com/questions/5815401
复制相似问题