Author: anil.saldhana(a)jboss.com
Date: 2009-08-27 18:37:13 -0400 (Thu, 27 Aug 2009)
New Revision: 747
Modified:
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/StandardRequestHandler.java
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/WSTrustJAXBFactory.java
Log:
fix validation
Modified:
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/StandardRequestHandler.java
===================================================================
---
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/StandardRequestHandler.java 2009-08-27
16:40:18 UTC (rev 746)
+++
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/StandardRequestHandler.java 2009-08-27
22:37:13 UTC (rev 747)
@@ -29,6 +29,7 @@
import javax.xml.crypto.dsig.DigestMethod;
import javax.xml.crypto.dsig.SignatureMethod;
+import org.apache.log4j.Logger;
import org.jboss.identity.federation.api.util.XMLSignatureUtil;
import org.jboss.identity.federation.api.wstrust.plugins.saml.SAMLUtil;
import org.jboss.identity.federation.core.saml.v2.util.DocumentUtil;
@@ -39,6 +40,7 @@
import org.jboss.identity.federation.ws.trust.StatusType;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
/**
* <p>
@@ -51,6 +53,8 @@
*/
public class StandardRequestHandler implements WSTrustRequestHandler
{
+ private static Logger log = Logger.getLogger(StandardRequestHandler.class);
+ private boolean trace = log.isTraceEnabled();
private STSConfiguration configuration;
@@ -132,6 +136,18 @@
Element tokenElement = (Element)
requestContext.getSecurityToken().getTokenValue();
XMLSignatureUtil.sign(tokenElement.getOwnerDocument(), keyPair,
DigestMethod.SHA1, signatureMethod,
"#" + requestContext.getSecurityToken().getTokenID());
+ if(trace)
+ {
+ try
+ {
+ log.trace("Signed Token:" +
DocumentUtil.getNodeAsString(tokenElement));
+
+ Document tokenDocument = DocumentUtil.createDocument();
+ tokenDocument.appendChild(tokenDocument.importNode(tokenElement,
true));
+ log.trace("valid=" +
XMLSignatureUtil.validate(tokenDocument, keyPair.getPublic()));
+
+ }catch(Exception ignore){}
+ }
}
catch (Exception e)
{
@@ -219,8 +235,22 @@
{
//Element tokenElement = (Element) request.getValidateTarget().getAny();
Element tokenElement = request.getValidateTargetElement();
+
+ Node securityToken = tokenElement.getFirstChild();
+
+ if(trace)
+ {
+ try
+ {
+ log.trace("Going to validate:" +
DocumentUtil.getNodeAsString(securityToken));
+ }
+ catch (Exception e)
+ {
+ }
+ }
Document tokenDocument = DocumentUtil.createDocument();
- tokenDocument.appendChild(tokenDocument.importNode(tokenElement, true));
+ Node importedNode = tokenDocument.importNode(securityToken, true);
+ tokenDocument.appendChild(importedNode);
if (!XMLSignatureUtil.validate(tokenDocument, keyPair.getPublic()))
{
status = new StatusType();
Modified:
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/WSTrustJAXBFactory.java
===================================================================
---
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/WSTrustJAXBFactory.java 2009-08-27
16:40:18 UTC (rev 746)
+++
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/WSTrustJAXBFactory.java 2009-08-27
22:37:13 UTC (rev 747)
@@ -29,6 +29,7 @@
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
+import org.apache.log4j.Logger;
import org.jboss.identity.federation.api.saml.v2.common.SAMLDocumentHolder;
import org.jboss.identity.federation.core.exceptions.ParsingException;
import org.jboss.identity.federation.core.saml.v2.util.DocumentUtil;
@@ -55,6 +56,9 @@
*/
public class WSTrustJAXBFactory
{
+ private static Logger log = Logger.getLogger(WSTrustJAXBFactory.class);
+ private boolean trace = log.isTraceEnabled();
+
private static final WSTrustJAXBFactory instance = new WSTrustJAXBFactory();
private Marshaller marshaller;
@@ -333,6 +337,15 @@
Node node = this.findNodeByNameNS(result, "RequestedSecurityToken",
WSTrustConstants.BASE_NAMESPACE);
node.appendChild(result.importNode(tokenElement, true));
}
+ if(trace)
+ {
+ try
+ {
+ log.trace("Final RSTR doc:" +
DocumentUtil.getDocumentAsString(result));
+
+ }catch(Exception ignore){}
+ }
+
}
catch (Exception e)
{
Show replies by date