1

我有一个使用 Spring Boot 并利用 Stormpath idSite 功能的 Java 应用程序。当我使用我的应用程序在本地通过 idSite 连接到 Stormpath 时,身份验证机制工作正常;我可以登录并获得一个 Account 对象。这适用于我的 IDE 以及独立的(运行 java -jar)。

当我部署我的应用程序(Uber-jar,嵌入式 tomcat)并运行它时,身份验证似乎正在运行(注销重定向到 idSite,un/pw 有效)。但是,当我从登录返回时,com.stormpath.sdk.account.Account 对象永远不会返回,尽管 Application 对象是。

我编写了一个快速例程来验证 HttpServletRequest 通过以下方式返回的内容:

Enumeration<String> e = request.getAttributeNames();
        while (e.hasMoreElements()) {
            attr += e.nextElement() + "<BR />";
        }

并看到帐户对象在登录后不存在,除非我在我的开发机器上。

在这一点之后,什么是调查的好途径?

4

1 回答 1

0

听起来您可能会遇到此问题,因为您的部署环境不受 SSL 保护。

Stormpath 只允许本地主机的 http 连接 - 能够测试。

一旦您的应用程序处于任何类型的部署环境中,所有连接都必须是 https。

如果不是 https,那么 Stormpath 将不会设置帐户 cookie,如您所见。

出于测试目的,您可以使用自签名证书,但您不希望在生产环境中使用它。

注意:一旦您启用了 SSL 部署环境,您将需要在您的 ID 站点设置中更新您的授权重定向 URL 以反映这一点。

希望这可以帮助!

全面披露:我为 Stormpath 工作

于 2016-01-29T15:31:51.880 回答