【问题标题】:Null Pointer Exception while Configuring the Identity Provider Proxy using OpenAM使用 OpenAM 配置身份提供程序代理时出现空指针异常
【发布时间】:2015-01-10 00:09:39
【问题描述】:

我是 OpenAM 的新手,并尝试通过设置涉及 SAML2 服务提供商、SAML2 IdP 服务器、SAML2 IdP 代理的身份验证解决方案来学习。

我能够设置服务提供者、身份提供者,目前正处于设置 IdP 代理“步骤 3:配置身份提供者代理 (machineb)”指南SAMLv2 IDP Proxy Part 1. Setting up a simple Proxy scenario 的阶段。 我能够完成到“步骤 3:b”,当我尝试“步骤 3:c”时,我得到空指针异常。

我的设置略有不同,我可以这样映射:

  • machinea.sp.comhttp://sp1.sp.com:8080 :将作为 SAML2 服务提供商 (SP) 运行的机器
  • machineb.idpproxy.comhttp://openam.idam.com:8080/OpenAM-11.0.0 :将用作 SAML2 IdP 代理的机器
  • machinec.idp.comhttp://idp1.idp.com:8080/OpenAM-11.0.0:将承担 SAML2 IdP 角色的机器。

在我的 Mac OS X 上,每一个都设置为 Virtual box VM。

我的信任圈是 spcot 而不是 cot,领域是 /sprealm

提交更改后我在网页上得到的堆栈跟踪是:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: AMSetupFilter.doFilter
    com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:134)
root cause

org.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.forgerock.openam.validation.ResponseValidationFilter.doFilter(ResponseValidationFilter.java:44)
    com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:98)
root cause

java.lang.NullPointerException
    com.sun.identity.federation.cli.CreateMetaDataTemplate.buildConfigTemplate(CreateMetaDataTemplate.java:573)
    com.sun.identity.federation.cli.CreateMetaDataTemplate.handleSAML2Request(CreateMetaDataTemplate.java:154)
    com.sun.identity.federation.cli.CreateMetaDataTemplate.handleRequest(CreateMetaDataTemplate.java:127)
    com.sun.identity.cli.SubCommand.execute(SubCommand.java:291)
    com.sun.identity.cli.CLIRequest.process(CLIRequest.java:212)
    com.sun.identity.cli.CLIRequest.process(CLIRequest.java:134)
    com.sun.identity.cli.CommandManager.serviceRequestQueue(CommandManager.java:573)
    com.sun.identity.cli.WebCLIHelper.processRequest(WebCLIHelper.java:151)
    com.sun.identity.cli.WebCLIHelper.getHTML(WebCLIHelper.java:92)
    org.apache.jsp.ssoadm_jsp._jspService(ssoadm_jsp.java:148)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.forgerock.openam.validation.ResponseValidationFilter.doFilter(ResponseValidationFilter.java:44)
    com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:98)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.

Apache Tomcat/7.0.26

catalina.out 中的堆栈跟踪是:

org.apache.jasper.JasperException: java.lang.NullPointerException
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.forgerock.openam.validation.ResponseValidationFilter.doFilter(ResponseValidationFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
    at com.sun.identity.federation.cli.CreateMetaDataTemplate.buildConfigTemplate(CreateMetaDataTemplate.java:573)
    at com.sun.identity.federation.cli.CreateMetaDataTemplate.handleSAML2Request(CreateMetaDataTemplate.java:154)
    at com.sun.identity.federation.cli.CreateMetaDataTemplate.handleRequest(CreateMetaDataTemplate.java:127)
    at com.sun.identity.cli.SubCommand.execute(SubCommand.java:291)
    at com.sun.identity.cli.CLIRequest.process(CLIRequest.java:212)
    at com.sun.identity.cli.CLIRequest.process(CLIRequest.java:134)
    at com.sun.identity.cli.CommandManager.serviceRequestQueue(CommandManager.java:573)
    at com.sun.identity.cli.WebCLIHelper.processRequest(WebCLIHelper.java:151)
    at com.sun.identity.cli.WebCLIHelper.getHTML(WebCLIHelper.java:92)
    at org.apache.jsp.ssoadm_jsp._jspService(ssoadm_jsp.java:148)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    ... 25 more

请帮我解决这个问题。谢谢。

【问题讨论】:

    标签: authentication virtual-machine virtualbox openam federation


    【解决方案1】:

    这是由于 OpenAM 11.0.0 中的 bug

    升级到 11.0.2,现在可以正常使用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 2021-06-29
      • 2020-03-21
      • 2014-09-26
      相关资源
      最近更新 更多