Metadata Aggregator - Issues with XMLSignatureSigningStage
James Webb
jwebb at tech-consortium.com
Fri Nov 4 22:02:15 GMT 2011
Chad,
I'm working with Dan here on this project. With a little but of debugging, I found the issue with the recursion in DomFilesystemSourceStage.getSourceFiles.
// file must be a directory
- final File[] files = sourceFile.listFiles();
+ final File[] files = input.listFiles();
if (files != null) {
for (File file : files) {
if (file.isFile() || (file.isDirectory() && recurseDirectories)) {
Essentially, the code was in an infinite loop as soon as it hit its first directory.
I'm attaching a patch for that change. We'll file a bug and include the patch in there.
Thanks again for putting together this awesome tool!
Regards,
James Webb
________________________________________
From: dev-bounces at shibboleth.net [dev-bounces at shibboleth.net] on behalf of Chad La Joie [lajoie at itumi.biz]
Sent: Friday, November 04, 2011 4:57 PM
To: Shib Dev
Subject: Re: Metadata Aggregator - Issues with XMLSignatureSigningStage
Probably a bug, go ahead and file it. I'm away on vacation until Nov 21.
On Fri, Nov 4, 2011 at 17:49, Dan McLaughlin
<dmclaughlin at tech-consortium.com> wrote:
> I have no issues signing or validating metadata now. Thanks!
>
> I have run into an issue if I create subdirectories under
> /tmp/mda/entities with metadata files, then DomFilesystemSourceStage
> gets stuck in a recursive loop. See exception below...
>
> <bean id="source"
> class="net.shibboleth.metadata.dom.DomFilesystemSourceStage"
> p:id="source">
> <property name="parserPool">
> <bean class="org.opensaml.util.xml.BasicParserPool"/>
> </property>
> <property name="source">
> <bean class="java.io.File">
> <constructor-arg value="/tmp/mda/entities"/>
> </bean>
> </property>
> <property name="recurseDirectories" value="true"/>
> </bean>
>
> Exception in thread "main" java.lang.StackOverflowError
> at sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:447)
> at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:544)
> at java.lang.StringCoding$StringEncoder.encode(StringCoding.java:240)
> at java.lang.StringCoding.encode(StringCoding.java:272)
> at java.lang.String.getBytes(String.java:946)
> at java.io.UnixFileSystem.list(Native Method)
> at java.io.File.list(File.java:973)
> at java.io.File.listFiles(File.java:1051)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:250)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> at net.shibboleth.metadata.d
>
> --
>
> Thanks,
>
> Dan McLaughlin
>
>
>
> On Thu, Oct 27, 2011 at 5:28 PM, Chad La Joie <lajoie at itumi.biz> wrote:
>> Dan,
>>
>> As Ian mentioned, there is a semi-released 0.6 that changes some
>> things. I say semi-released because there was a compiler issue found
>> and I was going to fix it before release but then got side tracked by
>> this summer's security issues and then IdP releases.
>>
>> So, give me a couple days to fix up the compiler issue and update the
>> wiki and then test with that. As Brent mentioned there are some
>> helper classes that I did that make it easier to create keys and certs
>> and the like so that should make what you're doing easier.
>>
>> On Thu, Oct 27, 2011 at 17:11, Dan McLaughlin
>> <dmclaughlin at tech-consortium.com> wrote:
>>> The only ones that I need examples for are signing and schema
>>> verification, the rest of the examples from the wiki are working with
>>> 0.5.
>>
>> --
>> Chad La Joie
>> www.itumi.biz
>> trusted identities, delivered
>> --
>> To unsubscribe from this list send an email to dev-unsubscribe at shibboleth.net
>>
> --
> To unsubscribe from this list send an email to dev-unsubscribe at shibboleth.net
>
--
Chad La Joie
www.itumi.biz
trusted identities, delivered
--
To unsubscribe from this list send an email to dev-unsubscribe at shibboleth.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: recursion_fix.patch
Type: application/octet-stream
Size: 712 bytes
Desc: recursion_fix.patch
Url : http://shibboleth.net/pipermail/dev/attachments/20111104/ea710e28/attachment-0001.obj
More information about the dev
mailing list