我有一个使用Spring Boot的Java应用程序并利用Stormpath idSite功能。当我使用我的应用程序通过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 />";
}
并且在登录后看到Accounts对象不存在,除非我在我的开发机器上。
在此之后调查的好途径是什么?
答案 0 :(得分:0)
听起来您可能遇到此问题,因为您的部署环境不受SSL保护。
Stormpath只允许本地主机的http连接 - 能够测试。
一旦您的应用程序处于任何类型的部署环境中,所有连接都必须是https。
如果它不是https,那么Stormpath将不会像您看到的那样设置帐户Cookie。
出于测试目的,您可以使用自签名证书,但您不希望在生产环境中使用此证书。
注意:启用SSL后,您需要更新ID站点设置中的授权重定向网址以反映此情况。
希望这有帮助!
完全披露:我为Stormpath工作