我有一个部署到Heroku的应用程序,它使用Spring Security,并且扩展名为HttpSessionSecurityContextRepository
。在扩展到多个dynos时意识到HttpSession
会导致问题,我尝试使用--session_manager memcache
标志(使用Heroku memcache插件)配置webapp-runner(https://github.com/jsimone/webapp-runner)。
使用Apache和mod_proxy
,两个Tomcat实例和memcached 1.4.13的本地配置工作正常。但是,当部署到Heroku时,它会失败,即使只有一个dyno - 随机重定向到登录页面,就像未经身份验证一样,表明会话存储不起作用。相同的Procfile,通过MEMCACHE_*
等验证了heroku config
个变量
有没有人有类似配置的经验?
答案 0 :(得分:0)
更新:配置按设计工作。
问题是由Spring Security错误配置引起的。隐藏在应用中的错误图片网址触发了重定向。虽然这应该只是一个404,但在context-security.xml中还有一个包含所有intercept-url
模式,其访问权限设置为IS_AUTHENTICATED_FULLY
。结果是任何带有错误URL的页面都重定向到登录页面。在部署到Heroku时纠正这些URL解决了问题,但我无法解释为什么它没有在本地系统上显示。