gpt4 book ai didi

grails - 如何知道用户是否已登录(在 GSP 中)

转载 作者:行者123 更新时间:2023-12-04 16:48:16 25 4
gpt4 key购买 nike

我有 index.gsp显示一个页面。在那个页面有一个注册按钮和一个登录按钮。一旦你登录,如果登录没问题,应用程序会再次带你到index.gsp .我需要的是,如果用户登录,这些按钮就会消失,而是说“你好,[用户名]”。我已经尝试过使用此代码,但它不起作用(它从未登录过):

在 Controller 中:

def dologin(){

def user=Usuario.findByUsernameAndPassword(params.username,springSecurityService.encodePassword(params.password) )

if(user){
redirect (controller:'usuario', action:'index')
}else{

flash.message=message(code:'default.user.not.found', args:[message(code: 'params.username', default:'Usuario'), params.id])
def userlogged = springSecurityService.getCurrentUser()
render view: 'index', model: [user: user]
}

}

在 index.gsp 中(未满,只有重要的部分):
<sec:ifNotLoggedIn>

<div id="buttons">
<div id="login"><a href="loginurl">Login</a>
</div>
<div id="register"><a href="registerurl">Registrarse</a>
</div>
</div>
</sec:ifNotLoggedIn>
<sec:ifLoggedIn>

<div id="greet">Hello!</div>

</sec:ifLoggedIn>

任何帮助,将不胜感激。

谢谢你。

最佳答案

看起来您正在进行自己的身份验证,而不是通过 spring 安全身份验证过程。 <sec:ifLoggedIn>标签依赖于处理身份验证的 spring 安全性。

在 spring 安全应用程序中处理这种情况的通常方法是将登录请求发布到 /j_spring_security_check ,它在幕后被 UsernamePasswordAuthenticationFilter 过滤.

Grails 和 spring 安全插件通过提供 LoginController 使这相对轻松。和 auth.gsp您可以将其用作起点。运行 s2-quickstart脚本(也创建用户和角色域对象),或者只是从 spring-security-core 复制它们。模板目录。

关于grails - 如何知道用户是否已登录(在 GSP 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563287/

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