You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Security Grails:如何自定义/login/authenticate至会话检查动作?

解决方案

要实现自定义提交路径并在调用时执行会话检查,你可以按以下步骤操作:

1. 创建自定义控制器动作

首先在你项目的控制器(比如自己的LoginController)里新增一个动作,专门用来处理会话检查,完成后再转发到插件的认证接口:

class LoginController {
    def customAuthenticate() {
        // 这里添加你的会话检查逻辑
        if (!session.user) {
            // 会话无效时的处理,比如提示并跳回登录页
            flash.message = "会话已过期,请重新登录"
            redirect(action: 'index')
            return
        }

        // 会话检查通过后,转发到插件的authenticate接口
        forward(controller: 'login', action: 'authenticate', plugin: '你的插件名称', params: params)
    }
}

记得把'你的插件名称'替换成实际的插件ID,确保能正确定位到插件内的控制器。

2. 修改表单的提交目标

把原来的<g:form>标签修改为指向你刚创建的自定义动作:

<g:form controller="login" action="customAuthenticate" class="form">
    <!-- 原表单内容保持不变即可 -->
</g:form>

额外小贴士

  • 如果会话检查逻辑需要复用,建议抽成拦截器(Interceptor),这样无需在每个动作里重复写代码,拦截器会自动在指定动作执行前完成检查。
  • 这里用forward而不是redirect,是因为转发是服务器内部跳转,能保留原表单参数,同时直接复用插件的认证逻辑;如果用重定向,浏览器地址栏会更新,还需要手动传递参数。

内容的提问来源于stack exchange,提问作者Nikhil Shrestha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:38:25