gpt4 book ai didi

grails - 使用SpringSecurityCore Bootstrap

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

最近才开始在Groovy中编程,但已经停滞了。我正在尝试创建可用于在 bootstrap 中登录的用户,我已经看到了许多教程,尽管有复制和粘贴代码,但还是遇到了很多错误。现在,我开始研究似乎可以运行的代码,但是用户根本不在那儿。

我究竟做错了什么?

import grails.timesecurity.*
import timetracker2.*

class BootStrap {
def springSecurityService

def init = { servletContext ->

def examples = [
'rob' : [username: 'rob', password: 'password']
]

def userRole = Authority.findByAuthority("ROLE_USER") ?: new Authority(authority: "ROLE_USER").save()
def adminRole = Authority.findByAuthority("ROLE_ADMIN") ?: new Authority(authority: "ROLE_ADMIN").save()

if(!Person.count())
{
userRole = new Authority(authority: 'ROLE_USER').save()

//String password = springSecurityService.encodePassword('password')

def user = new Person(
username: "Rob",
password: springSecurityService.encodePassword("Password"),
enabled: true
)
PersonAuthority.create user, userRole
//def user = new Person['Rob', password, enabled: true].save()
}
}

def destroy = {}
}

任何可以帮助的人都是传奇!

最佳答案

您不会在Person实例上调用save()。但是,一旦解决,您将无法登录,因为您在关注旧的教程或博客文章,并且明确地对密码进行了编码。但是生成的Person类已经做到了,因此将被双重编码。为了进一步混淆,您正在使用ROLE_USER创建第二个Authority。

试试这个:

def userRole = Authority.findByAuthority("ROLE_USER") ?: new Authority(authority: "ROLE_USER").save()
def adminRole = Authority.findByAuthority("ROLE_ADMIN") ?: new Authority(authority: "ROLE_ADMIN").save()

if (!Person.count()) {

def user = new Person(
username: "Rob",
password: "Password",
enabled: true).save()

PersonAuthority.create user, userRole
}

关于grails - 使用SpringSecurityCore Bootstrap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13573852/

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