使用Spring安全插件从Grails应用程序注销时获得HTTP状态405

使用Spring安全插件从Grails应用程序注销时获得HTTP状态405,grails,spring-security,logout,Grails,Spring Security,Logout,我正在将Spring安全插件(2.0 RC3)添加到我的Grails应用程序(2.4.4)中。但是,单击“注销”链接后,我会看到HTTP状态为405的网页 如何解决这个问题?可以通过分析LogoutController代码找到原因 class LogoutController { def index() { if (!request.post && SpringSecurityUtils.getSecurityConfig().logout.postO

我正在将Spring安全插件(2.0 RC3)添加到我的Grails应用程序(2.4.4)中。但是,单击“注销”链接后,我会看到HTTP状态为405的网页


如何解决这个问题?

可以通过分析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> 
grails.plugin.springsecurity.logout.postOnly = false