I'm trying to get digital signatures working using the example "idp" and "employee" applications in the picketlink quickstarts. If I have both applications deployed on the same machine, everything seems to work. However, if I put the "idp" application on a different machine (and update the picketlink.xml files appopriately), I run into the following error:
15:23:41,254 ERROR [org.apache.catalina.connector] (http-/0.0.0.0:8080-2) JBWEB001018: An exception or error occurred in the container during the request processing: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(Ljavax/xml/crypto/dsig/XMLSignContext;)V" the class loader (instance of org/jboss/modules/ModuleClassLoader) of the current class, org/apache/jcp/xml/dsig/internal/dom/DOMXMLSignature, and the class loader (instance of <bootloader>) for interface javax/xml/crypto/dsig/XMLSignature have different Class objects for the type ture.sign(Ljavax/xml/crypto/dsig/XMLSignContext;)V used in the signature
Any idea what is causing this and why it is only happening if the applications are deployed on different machines?
I was able to resolve this issue by using POST binding instead of REDIRECT in the "employee" application, in case anyone else runs to this issue. I'm not sure why redirect binding wasn't working.