使用Stormpath和Spring Boot(基于this tutorial),在启动我的服务器并成功登录后,我的凭据一切正常。但是,当我退出浏览器并尝试打开我的应用程序时,我得到一个重定向循环。Stormpath Spring Boot重定向循环
A minimal example is available here as an archive。这是一个Gradle项目。 cd
进入档案内的目录,并用./gradlew bootRun
启动服务器。该应用程序将在http://localhost:8080访问。这需要一个Stormpath API密钥。注册,get an API key并将apiKey-XXX.properties文件复制到~/.stormpath/apiKey.properties
。通过这种方式,Spring Boot将启动该文件并默认使用它(只有当您在Stormpath中定义了一个应用程序时)。
登录,然后退出浏览器(在Mac上不要用红色按钮关闭它,使用命令-q或右键单击浏览器的图标并退出)。重新启动它并再次尝试访问http://localhost:8080。那是当我得到重定向循环。在Mac和Windows,Firefox和Chrome上尝试过,情况也是如此。
如果我打开开发者控制台,我可以看到,首先,我重定向到登录页面(不够公平),那么我重定向到/
(奇怪)等等...
当我首次登录时,我可以看到名为account
的cookie是为localhost创建的,也是JSESSIONID
。当我重新启动浏览器时,account
cookie完好无损,服务器重新生成JSESSIONID
。所以我想这种行为与JSESSIONID
绑定到登录会话等事实有关。
有没有办法配置这种行为?浏览器重新启动后,用户应该a)仍然登录或b)能够再次登录。任何想法?
此外,在一个侧面说明中,我使用AngularJS应用程序作为我的前端。我不认为这应该会有所作为,但我认为它可能很重要(示例应用程序包含一些用于此目的的AngularJS hello world代码)。
更新
问题被标记为通过Stormpath错误和com.stormpath.spring:stormpath-default-spring-boot-starter:1.0.RC8.1
释放它现在固定后。 See the following answer and the comments for more detail。
是否与SpringSecurity冲突? – Raffaele
Tomcat 8.0中存在一个错误。30可能会导致这样的行为。请参阅https://github.com/spring-projects/spring-boot/issues/4937了解更多详细信息以及可能值得一试的可能解决方法 –
我还无法运行您的应用程序,但在[ quickstart](https://docs.stormpath.com/java/spring-boot-web/quickstart.html)他们说你应该在你的'application.properties'中设置'stormpath.application.href',如果你有超过一个API密钥 - 并且我无法在链接的源代码中找到该配置 – Raffaele