我有一个使用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 />";
}
并看到登录后不存在Accounts对象,除非我在我的开发机上。
在此之后,有什么好的调查途径?
最佳答案
听起来您可能正在遇到此问题,因为您的部署环境不受SSL保护。
Stormpath仅允许本地主机使用http连接-可以进行测试。
一旦您的应用程序处于任何类型的部署环境中,所有连接都必须为https。
如果不是https,那么正如您所见,Stormpath将不会设置帐户cookie。
出于测试目的,您可以使用自签名证书,但是您不希望在生产环境中使用此证书。
注意:使用SSL启用部署环境后,您将需要在ID网站设置中更新授权的重定向URL,以反映这一点。
希望这可以帮助!
全面披露:我为Stormpath工作
关于java - 环境的Stormpath idSite身份验证问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34799436/