2015-07-20 64 views
0

在我的Web应用程序中,我有用户的表单登录和服务器到服务器API调用的基本身份验证。基本认证流程是无状态的,但表单登录不是。 当有人请求API使用基本身份验证我得到了下面的日志无法创建会话,因为响应已提交

Failed to create a session, as response has been committed. 

经过一番研究,我发现几个主题与建议,使用NullSecurityContextRepository或设置<http create-session='never' /> 我不能使用这些解决方案,因为它会破坏形式登录警告流。

如何仅在基本身份验证流程中禁用会话创建?

感谢

回答

0

使用Spring Security 3.1开始,你可以以差异保护的URL模式配置multiple <http>元素。这应该允许您为不同的http元素创建不同的会话创建策略。

请检查上面的链接,使用form和http-basic认证的不同蚂蚁模式的多个http元素的命名空间配置。希望这可以帮助! :)

+0

感谢您的回答。不幸的是,我不能使用这个解决方案,因为我必须支持使用基本和表单身份验证的相同url模式。 –

+0

什么是您的完整使用案例,以及如何区分正常请求和API调用?您也可以根据他们使用的http方法来处理您的请求。请提供一些有关您的问题的信息,那么我可能会或者社区中的其他人能够更好地帮助您。 –

相关问题