【问题标题】:Got HTTP Status 405 in case of logout from Grails application with Spring Security Plugin使用 Spring Security 插件从 Grails 应用程序注销时获得 HTTP 状态 405
【发布时间】:2015-04-07 15:28:18
【问题描述】:

我正在向我的 Grails 应用程序 (2.4.4) 添加 Spring Security 插件 (2.0 RC3)。但是,一旦单击“注销”链接,我就会看到带有 HTTP Status 405 的网页。

如何解决这个问题?

【问题讨论】:

    标签: grails spring-security logout


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 2013-07-21
      • 2011-08-20
      • 1970-01-01
      • 2015-06-13
      • 2016-07-14
      • 2013-01-08
      • 2015-10-26
      • 2011-10-08
      相关资源
      最近更新 更多