gpt4 book ai didi

grails - 如何在我的项目中实现 Grails 的 Shiro 安全性

转载 作者:行者123 更新时间:2023-12-04 04:52:53 26 4
gpt4 key购买 nike

我是 Grails 的新手并使用了一些 Shiro 安全性。
我制作了一个带有登录页面的小网站,如果登录成功,它会将我重定向到另一个登录页面。

现在我想实现 Shiro Security。我已经在新的 Grails 项目上运行了该插件和 Shiro 的快速启动应用程序。

我想要实现的是如何使用快速启动文件和代码在我自己的页面上实现我的安全性。请指导。一点。我应该从那个快速开始使用哪些文件以及我应该进行哪些更改。 ?

等待一些积极的回应:)

最佳答案

让我们首先从一个新的应用程序开始:

grails create-app ShiroDemo

现在安装 shiroby,将其添加到 BuildConfig.groovy 的 plugins 部分:

插件{
编译 ":shiro:1.1.4"
}

我们需要身份验证 Controller 和通配符领域:
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线。您可以在此处授予 Controller 和操作的权限。如果角色缺少权限,用户将被重定向到访问被拒绝页面。你会在 shiro 插件页面上找到关于如何指定权限的很好的描述: http://www.grails.org/plugin/shiro
您必须为应用程序的其余功能添加更多权限。
您也可以将这些权限直接添加到用户 - 有时对于测试或如果您不想为特殊内容设置新角色很有用。

顺便说一句:确保使用 sha256hash 而不是 sha1hash,它不适用于当前的 shiro 版本。

我们要做的最后一件事是创建 /conf/SecurityFilters.groovy类(class):
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()
}
}
}
}

这将为所有 Controller 安装访问控制,但不会安装直接 View (我们的索引页面)。

现在试一试并运行你的项目:
grails run-app

希望有帮助!

关于grails - 如何在我的项目中实现 Grails 的 Shiro 安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5815401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com