angularjs - Stormpath Spring Boot 重定向循环

标签 angularjs redirect spring-boot stormpath redirect-loop

使用 Stormpath 和 Spring Boot(基于 this tutorial ),在我启动服务器并使用我的凭据成功登录后,一切正常。但是,当我退出浏览器并尝试打开我的应用程序时,我遇到了重定向循环。

一个minimal example is available here as an archive 。这是一个 Gradle 项目。 cd 进入存档内的目录,并使用 ./gradlew bootRun 启动服务器。该应用程序可通过 http://localhost:8080 访问。 。为此需要 Stormpath API key 。注册 get an API key并将 apiKey-XXX.properties 文件复制到 ~/.stormpath/apiKey.properties。这样,Spring Boot 将获取该文件并默认使用它(仅当您在 Stormpath 中定义了单个应用程序时)。

登录,然后退出浏览器(在 Mac 上,不要仅使用红色按钮关闭它,使用 command-q 或右键单击浏览器图标并退出)。重新启动并尝试访问http://localhost:8080再次。那是我得到重定向循环的时候。在 Mac 和 Windows、Firefox 和 Chrome 上尝试过,同样的情况发生。

如果我打开开发者控制台,我可以看到首先我被重定向到登录页面(这很公平),然后我被重定向到 / (奇怪)等等......

当我第一次登录时,我可以看到为 localhost 创建了一个名为 account 的 cookie,并且还创建了一个 JSESSIONID。当我重新启动浏览器时,account cookie 完好无损,并且 JSESSIONID 由服务器重新生成。所以我猜想这种行为与 JSESSIONID 绑定(bind)到登录 session 或其他东西有关。

有办法配置此行为吗?浏览器重新启动后,用户应该 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 .

最佳答案

我是 Stormpath 的 Java 开发人员传播者。

我无法使用您的 zip 文件复制该行为。

但是,我们之前已经见过这种情况。这与浏览器积极缓存 302 重定向有关,尤其是针对 localhost

以下引用资料涉及 Chrome 中的问题:http://kmarsden.com/chrome-redirect-cache/

清除缓存应该可以解决该问题。

而且,这在生产环境中永远不会发生。

gif of Firefox interaction

关于angularjs - Stormpath Spring Boot 重定向循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886331/

相关文章:

javascript - Adobe Creative SDK Web 加载后显示小图像

angularjs - 模拟 Protractor 中的时间流逝?

angularjs - 有什么方法可以在 android studio 中构建混合应用程序(Ionic、AngularJs、Cordova)

Java Spring启动: Not able to access @Bean defined in @Configuration

javascript - 如果我执行一个进行异步调用的函数,如果执行循环,如何让函数的其余部分在执行之前等待调用?

.htaccess - 使用 htaccess 重写删除 URL 的一部分

facebook - 是否可以强制 Facebook Likes 遵循 301 重定向

php - 如何实现303重定向?

spring-boot - 如何使用 Spring Boot 2.0 通过 PushGateway 将指标导出到 Prometheus

java - Docker:Springboot容器无法连接到PostgreSql容器