tomcat中的弹出警告输出“无法创建会话”

时间:2011-01-27 23:10:25

标签: java spring security tomcat

我收到了以下消息,我不知道他们的意思。一切似乎都运转正常,但我只是想保持安全。是否可以对这些警告采取措施:

2011-01-25/23:30:06.856/EST [http-80-exec-1] WARN Failed to create a session, as response has been committed. Unable to store SecurityContext.

2011-01-25/23:30:09.597/EST [http-80-exec-3] WARN Authentication event InteractiveAuthenticationSuccessEvent: email@domain.com; details: org.springframework.security.web.authentication.WebAuthenticationDetails@957e: RemoteIpAddress: 170.9.26.16; SessionId: null

我正在使用spring 3

运行tomcat 6spring security 3

更新

我根据此信息(来自here)重新配置了以下bean:

  

创建会话

     

控制创建HTTP会话的热情。如果未设置,则默认为“ifRequired”。其他选项是“永远”和“从不”。此属性的设置会影响HttpSessionContextIntegrationFilter的allowSessionCreation和forceEagerSessionCreation属性。除非将此属性设置为“never”,否则allowSessionCreation将始终为true。 forceEagerSessionCreation为“false”,除非它设置为“always”。因此,默认配置允许创建会话,但不强制它。例外情况是,如果启用了并发会话控制,则​​forceEagerSessionCreation将设置为true,而不管此处的设置是什么。使用“never”会在HttpSessionContextIntegrationFilter初始化期间导致异常。

<bean id="httpSessionContextIntegrationFilter" class="org.springframework.security.web.context.HttpSessionContextIntegrationFilter">
    <property name="allowSessionCreation" value="false"/>
</bean>

2 个答案:

答案 0 :(得分:3)

将以下内容添加到您的配置中:http session-creation ='never'&gt; 有关Spring论坛的更多信息:http://forum.springsource.org/showthread.php?t=82196

答案 1 :(得分:1)

根据春季文件http://docs.spring.io/spring-security/site/docs/3.1.x/reference/technical-overview.html第6.3.2节

  

在将响应写入客户端之前,您可能需要抢先创建一个HTTP会话来缓存请求之间的上下文。一旦提交了响应,就无法创建会话。

使用grails,spring-security-core插件,X509身份验证这对我有用。

在conf / Config.groovy中添加

grails.plugins.springsecurity.useSecurityEventListener = true grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent = { e, appCtx -> RequestContextHolder.currentRequestAttributes().getSession().getId()}