java - openam客户端sdk session ID无效

标签 java opensso openam

IAM与tomcat 7一起使用openam
以下几行总是产生异常
               SSOTokenManager管理器= SSOTokenManager.getInstance();
               SSOToken ssoToken = manager.createSSOToken(request);

无效的工作阶段编号

我认为某些配置或某些内容可能存在问题

任何帮助?

amSSOProvider:09/18/2012 01:18:01:882 PM EEST:线程[http-bio-9090-exec-151,5,main]
无法从HttpRequest创建SSOToken
com.iplanet.dpro.session.SessionException:无效的会话ID。
    在com.iplanet.dpro.session.Session.getSession(Session.java:1062)
    在com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:92)
    在com.iplanet.sso.SSOTokenManager.createSSOToken(SSOTokenManager.java:241)
    在main.TestServlet2.doGet(TestServlet2.java:48)
    在javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    在javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:170)
    在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:473)
    在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:930)
    在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:120)
    在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
    在org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:515)
    在org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:304)
    在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)
    在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:909)
    在java.lang.Thread.run(Thread.java:619)

com.iplanet.sso.SSOException:无效的会话ID。
    在com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:111)
    在com.iplanet.sso.SSOTokenManager.createSSOToken(SSOTokenManager.java:241)
    在main.TestServlet2.doGet(TestServlet2.java:48)
    在javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    在javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:170)
    在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:473)
    在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:930)
    在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:120)
    在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
    在org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:515)
    在org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:304)
    在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)
    在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:909)
    在java.lang.Thread.run(Thread.java:619)
引起原因:com.iplanet.dpro.session.SessionException:无效的会话ID。
    在com.iplanet.dpro.session.Session.getSession(Session.java:1062)
    在com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:92)

最佳答案

确保您的应用程序的域名与openam服务器的域名相关
这个例子
如果openam域服务器类似于该openam.example.com,则cookie名称为.example.com
因此您的应用程序也在此域yourhost.example.com中,因此我们可以从Cookie中获取令牌。

关于java - openam客户端sdk session ID无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12474911/

相关文章:

spring-security - spring security saml 使用哪个 key ?

java - OpenSSO/AM 和 Fedlet 的教程/理解

tomcat - 登录使用 ldap 验证的 openam 时验证失败

java - 如何在 Android Wifi 中列出相同的 SSID?

java - 使用 Zookeeper 存储用户权限有意义吗

java - 服务器到 Firebase HTTP POST 结果为响应消息 200

javascript - 将文本字段添加到 OpenAM XUI 登录页面

java - 迭代openCV java中的视频帧

Tomcat 的 NotSerializableException

java - OpenAM/OpenSSO HttpServletRequest.login(user, pass) 失败并显示 "Invalid transport string"。这是什么意思?