【发布时间】:2015-04-07 15:28:18
【问题描述】:
我正在向我的 Grails 应用程序 (2.4.4) 添加 Spring Security 插件 (2.0 RC3)。但是,一旦单击“注销”链接,我就会看到带有 HTTP Status 405 的网页。
如何解决这个问题?
【问题讨论】:
标签: grails spring-security logout
我正在向我的 Grails 应用程序 (2.4.4) 添加 Spring Security 插件 (2.0 RC3)。但是,一旦单击“注销”链接,我就会看到带有 HTTP Status 405 的网页。
如何解决这个问题?
【问题讨论】:
标签: grails spring-security logout
通过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
【讨论】: