使用 Spring Security 插件从 Grails 应用程序注销时获得 HTTP 状态 405
Posted
技术标签:
【中文标题】使用 Spring Security 插件从 Grails 应用程序注销时获得 HTTP 状态 405【英文标题】:Got HTTP Status 405 in case of logout from Grails application with Spring Security Plugin 【发布时间】:2015-04-07 15:28:18 【问题描述】:我正在向我的 Grails 应用程序 (2.4.4) 添加 Spring Security 插件 (2.0 RC3)。但是,一旦单击“注销”链接,我就会看到带有 HTTP Status 405
的网页。
如何解决这个问题?
【问题讨论】:
【参考方案1】:通过LogoutController代码分析可以找到原因
class LogoutController
def index()
if (!request.post && SpringSecurityUtils.getSecurityConfig().logout.postOnly)
response.sendError HttpServletResponse.SC_METHOD_NOT_ALLOWED // 405
return
// TODO put any pre-logout code here
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl
所以有两个可用的修复:
1) 更改“注销”链接以发送 POST 请求。
<form name="logout" method="POST" action="$createLink(controller:'logout') ">
<input type="submit" value="logout"></form>
2) 或者只是将以下行添加到 Config.groovy
grails.plugin.springsecurity.logout.postOnly = false
【讨论】:
以上是关于使用 Spring Security 插件从 Grails 应用程序注销时获得 HTTP 状态 405的主要内容,如果未能解决你的问题,请参考以下文章
Grails spring-security-core 插件教程
使用用户名作为电子邮件,Spring Security UI 插件