Uploaded image for project: 'PicketLink v2'
  1. PicketLink v2
  2. PLINK2-24

Metadata servlet cannot read picketlink.xml

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: PLINK_2.1.3
    • Fix Version/s: None
    • Component/s: SAML
    • Labels:
      None
    • Environment:

      JBoss AS 7.1.1.Final, Picketlink 2.1.3.Final subsystem and federation, Java 7u5, picketlink quickstarts

      Description

      The SAMLConfigParser class used by the MetadataServlet cannot read picketlink.xml. It looks as if it was only ever designed to read the deprecated picketlink-idfed.xml and picketlink-handlers.xml formats. The first StartElement read from the file is <PicketLink/>, which should be validated then discarded. Instead, it is taken and tested for either <PicketLinkSP/> or <PicketLinkIDP/> then handed off unconditionally to read for <Handlers/>, and the following exception is thrown:

      The exception reported is:

       
      12:48:06,041 ERROR [org.picketlink.identity.federation.web.servlets.saml.MetadataServlet] (http--127.0.0.1-8080-1) Exception in starting servlet:: java.lang.RuntimeException: PLFED000060: Parser : Expected start tag: Handlers ::Found <PicketLink>
              at org.picketlink.identity.federation.PicketLinkLoggerImpl.parserExpectedTag(PicketLinkLoggerImpl.java:281) [picketlink-jbas7-2.1.3.Final.jar:2.1.3.Final]
              at org.picketlink.identity.federation.core.parsers.util.StaxParserUtil.validate(StaxParserUtil.java:414) [picketlink-core-2.1.3.Final.jar:2.1.3.Final]
              at org.picketlink.identity.federation.core.parsers.config.SAMLConfigParser.parseHandlers(SAMLConfigParser.java:135) [picketlink-core-2.1.3.Final.jar:2.1.3.Final]
              at org.picketlink.identity.federation.core.parsers.config.SAMLConfigParser.parse(SAMLConfigParser.java:124) [picketlink-core-2.1.3.Final.jar:2.1.3.Final]
              at org.picketlink.identity.federation.core.parsers.AbstractParser.parse(AbstractParser.java:86) [picketlink-core-2.1.3.Final.jar:2.1.3.Final]
              at org.picketlink.identity.federation.web.util.ConfigurationUtil.getIDPConfiguration(ConfigurationUtil.java:66) [picketlink-core-2.1.3.Final.jar:2.1.3.Final]
              at org.picketlink.identity.federation.web.servlets.saml.MetadataServlet.init(MetadataServlet.java:113) [picketlink-core-2.1.3.Final.jar:2.1.3.Final]
              at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) [jbossweb-7.0.13.Final.jar:]
              at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:952) [jbossweb-7.0.13.Final.jar:]
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:188) [jbossweb-7.0.13.Final.jar:]
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489) [jbossweb-7.0.13.Final.jar:]
              at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
              at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
              at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_05]
      

      The following addition to the sales-post quickstart web.xml file will cause the error:

      <web-app>
          ...
          <servlet>
              <servlet-name>Metadata Servlet</servlet-name>
              <servlet-class>org.picketlink.identity.federation.web.servlets.saml.MetadataServlet</servlet-class>
          </servlet>
          
          <servlet-mapping>
              <servlet-name>Metadata Servlet</servlet-name>
              <url-pattern>/metadata</url-pattern>
          </servlet-mapping>
          
          <security-constraint>
              <web-resource-collection>
                  <web-resource-name>Metadata</web-resource-name>
                  <url-pattern>/metadata</url-pattern>
              </web-resource-collection>
          </security-constraint>
          ...
      </web-app>
      

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                anil.saldhana Anil Saldanha
                Reporter:
                lmcgrath Logan McGrath
              • Votes:
                4 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated: