gpt4 book ai didi

authentication - 成功验证后,Grails Spring Security会强制用户进入特定屏幕

转载 作者:行者123 更新时间:2023-12-02 14:08:20 25 4
gpt4 key购买 nike

这是场景。我有两个对象Users(带有用户名/密码)和UserInfo,其余数据与用户有关。 Users是具有数千条记录的旧表,而UserInfo是相当新的表。我希望在用户首次登录时获得尽可能多的UserInfo

我想在首次登录后强制用户进入自定义屏幕,并要求UserInfo数据。在新屏幕中获得“必需”数据后,我不会显示它,直到用户自愿要在“配置文件”下填写数据。

由于应用程序有多个入口点,因此我不想更新所有 Controller 以进行检查。

有没有办法我可以使用Spring Security filter或成功登录后执行的操作?我看了看ApplicationListener<AuthenticationSuccessEvent>,但是它不能解决问题,就好像我将链接复制粘贴到浏览器中一样,它使我可以直接到达目的地而无需询问“额外信息”。

简而言之,我希望在每次登录后进行检查,如果失败,则不允许用户进入该应用程序。无论他如何尝试进入。

最佳答案

在您的Config.groovy中,配置Spring Security的defaultTargetUrl并告诉它始终重定向到那里:

grails.plugins.springsecurity.successHandler.alwaysUseDefault = true
grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/userInfo/edit'

UserInfoController的编辑操作中,您可以检查是否存在必填字段(也许是 userInfo.validate()?),如果存在,则重定向至任意位置,也许是'/',否则将呈现编辑信息 View 。

关于authentication - 成功验证后,Grails Spring Security会强制用户进入特定屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13848668/

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