如何在 Spring Security Grails 上自定义 /login/authenticate?
Posted
技术标签:
【中文标题】如何在 Spring Security Grails 上自定义 /login/authenticate?【英文标题】:How can I customize /login/authenticate on Spring Security Grails? 【发布时间】:2018-11-04 10:10:41 【问题描述】:我正在执行对<g:form controller="login" action="authenticate" class="form">
的更改,它重定向到插件/login/authenticate
中包含的身份验证。
如何自定义另一个动作的路径,以便在调用该动作时执行会话检查?
【问题讨论】:
【参考方案1】:您可以按照以下方式执行自己/自定义的身份验证操作。
<!--Your login page gsp-->
<g:form controller="login" action="auth" class="form">
您的 GSP 自定义操作
//inject springSecurityService this service in the login controller as def springSecurityService
def auth()
def config = SpringSecurityUtils.securityConfig
if (springSecurityService.isLoggedIn())
redirect uri: config.successHandler.defaultTargetUrl
return
【讨论】:
【参考方案2】:您可以创建自己的操作并重定向到默认的 /login/authenticate apf url。您可以检查您的操作。
如果您需要在用户通过身份验证后检查某些内容,您可以简单地覆盖操作 def ajaxSuccess() 创建具有相同名称的控制器,即。登录控制器。
【讨论】:
【参考方案3】:Spring 安全性是围绕过滤器链构建的。正确的方法是创建一个新的过滤器。您可能需要下载 spring grails 安全核心插件并查看 GrailsUsernamePasswordAuthenticationFilter 之类的类以了解如何操作。
【讨论】:
以上是关于如何在 Spring Security Grails 上自定义 /login/authenticate?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring 获取之前捕获 Spring Security 登录表单?
如何在 Spring WebFlux Security(Reactive Spring Security)配置中将多个用户角色添加到单个 pathMatcher/Route?
如何在 spring-security 5.2 中增加 RemoteJWKSet 缓存 TTL