【问题标题】:How to configure grails and shiro to mark cookies secure?如何配置 grails 和 shiro 以将 cookie 标记为安全?
【发布时间】:2013-11-05 03:52:16
【问题描述】:

我正在使用带有 Shiro 插件 1.1.4 的 Grails 2.2.4,并希望将 cookie 标记为安全,以便不会通过 http 发送会话信息。

我正在寻找设置此设置的 grails 方式,通常在 shiro.ini 中

securityManager.sessionManager.sessionIdCookie.secure = true

打开 JIRA 问题以跟踪此问题: http://jira.grails.org/browse/GPSHIRO-76

【问题讨论】:

    标签: security grails session-cookies shiro


    【解决方案1】:

    另一种选择是从 BootStrap 中的 servletContext 中修补 sessionCookieConfig:

    class BootStrap {
        def init = { servletContext ->
            servletContext.sessionCookieConfig.secure = true
        }
    }
    

    注意:该选项会导致 grails 2.2.4 集成测试失败并出现 AbstractMethodError。

     Error Error executing script TestApp: org.springframework.mock.web.MockServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig; 
    java.lang.AbstractMethodError: org.springframework.mock.web.MockServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig;
        at BootStrap$_closure1.doCall(BootStrap.groovy:44)
        at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.java:308)
            ...
    

    【讨论】:

    • 请注意 SessionCookieConfig 在 servlet 版本 3.0 中可用
    【解决方案2】:

    您可以通过shiroSecurityManager bean 进行设置。例如,在 BootStrap 中:

    def shiroSecurityManager
    
    def init = { servletContext ->
        shiroSecurityManager.sessionManager.sessionIdCookie.secure = true
        ...
    }
    

    【讨论】:

    【解决方案3】:

    您可以将您的 ini 设置放在以下块中 在 Config.groovy 中:

       security {
         shiro {
            filter.config = """
                           [main]your ini settings
                           [urls]your ini settings 
                           """
         }
       }
    

    【讨论】:

      【解决方案4】:
      1. 如果您还没有模板,请在您的应用程序中安装模板。 grails install-templates
      2. 编辑src/templates/war/web.xml 使其包含带有cookie-config 的会话配置:
      真安全> 会话配置>

      【讨论】:

        猜你喜欢
        • 2018-09-08
        • 2012-08-24
        • 2017-04-15
        • 2022-01-07
        • 1970-01-01
        • 2012-01-27
        • 2015-05-22
        • 2013-01-27
        • 2011-11-25
        相关资源
        最近更新 更多