[JIRA] Issue Comment Edited: (MDA-57) Schema validation errors are not output unless logback with debug loglevel is specified

Ian Young (JIRA) noreply at shibboleth.net
Tue Jan 3 13:20:25 GMT 2012


    [ https://issues.shibboleth.net/jira/browse/MDA-57?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13760#comment-13760 ] 

Ian Young edited comment on MDA-57 at 1/3/12 1:20 PM:
------------------------------------------------------

{quote}
On the other hand, that way one tiny mistake at the source can result in your metadata becoming invalid as well.
{quote}

No, that's the purpose of the "filter" part of disassemble/check/filter/assemble.  You remove entities that fail checks, without being forced to remove all entities or terminate outright.  The more checking you do, the more you find that other people don't really do very much.

      was (Author: ian at iay.org.uk):
    {quote}
On the other hand, that way one tiny mistake at the source can result in your metadata becoming invalid as well.
{quote}

No, that's the purpose of the "filter" part of disassemble/check/filter/assemble.  You remove entities that fail checks, without being forced to remove all entities or terminate outright.  The more checking you do, the more you find that other people don't really do very much; eduGAIN is a good example, as you're finding.
  
> Schema validation errors are not output unless logback with debug loglevel is specified
> ---------------------------------------------------------------------------------------
>
>                 Key: MDA-57
>                 URL: https://issues.shibboleth.net/jira/browse/MDA-57
>             Project: Metadata Aggregator
>          Issue Type: Bug
>            Reporter: Lukas Haemmerle
>            Assignee: Chad La Joie
>
> When using a schema validation bean I noticed that validation errors are not output when mda.sh is called by default. Only if one adds a JVMOPT to specify a logback.xml via the command line and only if the log level is set to "debug", the validation errors are output. Also the return code of mda.sh in that case is 0.
> {code}
> org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'mdui:GeolocationHint'. One of '{"urn:oasis:names:tc:SAML:metadata:ui":DisplayName, "urn:oasis:names:tc:SAML:metadata:ui":Description, "urn:oasis:names:tc:SAML:metadata:ui":Keywords, "urn:oasis:names:tc:SAML:metadata:ui":Logo, "urn:oasis:names:tc:SAML:metadata:ui":InformationURL, "urn:oasis:names:tc:SAML:metadata:ui":PrivacyStatementURL, WC[##other:"urn:oasis:names:tc:SAML:metadata:ui"]}' is expected.
> 	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) ~[na:na]
> 	at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) ~[na:na]
> 	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) ~[na:na]
> 	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) ~[na:na]
> 	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) ~[na:na]
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source) ~[na:na]
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source) ~[na:na]
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source) ~[na:na]
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source) ~[na:na]
> 	at org.apache.xerces.jaxp.validation.DOMValidatorHelper.beginNode(Unknown Source) ~[na:na]
> 	at org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source) ~[na:na]
> 	at org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source) ~[na:na]
> 	at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown Source) ~[na:na]
> 	at javax.xml.validation.Validator.validate(Unknown Source) ~[na:1.4.01]
> 	at net.shibboleth.metadata.dom.XMLSchemaValidationStage.doExecute(XMLSchemaValidationStage.java:121) [aggregator-pipeline-0.6.1.jar:na]
> 	at net.shibboleth.metadata.dom.XMLSchemaValidationStage.doExecute(XMLSchemaValidationStage.java:57) [aggregator-pipeline-0.6.1.jar:na]
> 	at net.shibboleth.metadata.pipeline.BaseIteratingStage.doExecute(BaseIteratingStage.java:44) [aggregator-pipeline-0.6.1.jar:na]
> 	at net.shibboleth.metadata.pipeline.BaseStage.execute(BaseStage.java:41) [aggregator-pipeline-0.6.1.jar:na]
> 	at net.shibboleth.metadata.pipeline.SimplePipeline.execute(SimplePipeline.java:66) [aggregator-pipeline-0.6.1.jar:na]
> 	at net.shibboleth.metadata.cli.SimpleCommandLine.main(SimpleCommandLine.java:90) [aggregator-cli-0.6.1.jar:na]
> 2012-01-03 11:04:11,057 DEBUG net.shibboleth.metadata.cli.SimpleCommandLine - Pipeline execution complete
> maclh:aggregator-cli-0.6.1 haemmer$ echo $?
> 0
> {code}
> The configuration I used was:
> {code}
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xmlns:p="http://www.springframework.org/schema/p"
>     xmlns:util="http://www.springframework.org/schema/util"
>     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
>                            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
>     default-init-method="main">
>     <bean id="httpClientBuilder" class="org.opensaml.util.net.HttpClientBuilder"/>
>     <bean id="httpClient" factory-bean="httpClientBuilder" factory-method="buildClient"/>
>     <!-- First, we define the stages for our pipeline -->
>     <bean id="source" class="net.shibboleth.metadata.dom.DomFilesystemSourceStage">
>         <property name="id" value="source"/>
>         <property name="parserPool">
>             <bean class="org.opensaml.util.xml.BasicParserPool" init-method="initialize"/>
>         </property>
> 	<property name="source">
>             <bean class="java.io.File">
>                 <constructor-arg value="mm.xml"/>
>             </bean>
>         </property>
>     </bean>
>     <bean id="validateSchema" class="net.shibboleth.metadata.dom.XMLSchemaValidationStage"
>         p:id="validateSchema">
>         <property name="schemaResources">
>             <util:list>
>                <bean class="org.opensaml.util.resource.FilesystemResource">
>                     <constructor-arg value="schemas/saml-schema-metadata-2.0.xsd" />
>                </bean>
>                <bean class="org.opensaml.util.resource.FilesystemResource">
>                     <constructor-arg value="schemas/shibboleth-metadata-1.0.xsd" />
>                </bean>
>                <bean class="org.opensaml.util.resource.FilesystemResource">
>                     <constructor-arg value="schemas/saml-metadata-ui-1.0.xsd" />
>                </bean>
>                <bean class="org.opensaml.util.resource.FilesystemResource">
>                     <constructor-arg value="schemas/saml-metadata-rpi-1.0.xsd" />
>                </bean>
>             </util:list>
>         </property>
>     </bean>
>     <bean id="validateSignature" class="net.shibboleth.metadata.dom.XMLSignatureValidationStage">
>         <property name="id" value="validateSignature"/>
>         <property name="verificationCertificate">
>             <bean class="net.shibboleth.ext.spring.factory.X509CertificateFactoryBean">
>                 <property name="certificateFile">
>                     <bean id="eduGAINCertFile" class="java.io.File">
>                         <constructor-arg value="eduGAIN-Signer-CA.crt"/>
>                     </bean>
>                 </property>
>             </bean>
>         </property>
>     </bean>
>     <bean id="serialize" class="net.shibboleth.metadata.pipeline.SerializationStage">
>         <property name="id" value="serializeIdPs"/>
>         <property name="outputFile">
>             <bean class="java.io.File">
>                 <constructor-arg value="verified-m.xml"/>
>             </bean>
>         </property>
>         <property name="serializer">
>             <bean id="domSerializer" class="net.shibboleth.metadata.dom.DomElementSerializer"/>
>         </property>
>     </bean>
>     <!-- Next we define a pipeline with all the stages in it -->
>     <bean id="main" class="net.shibboleth.metadata.pipeline.SimplePipeline">
>         <property name="id" value="pipeline"/>
>         <property name="stages">
>             <list>
>                 <ref bean="source"/>
> 		<ref bean="validateSchema" />
>                 <!-- <ref bean="validateSignature"/> -->
>                 <ref bean="serialize"/>
>             </list>
>         </property>
>     </bean>
> </beans>
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the commits mailing list