Author: coheigea Date: Thu Feb 8 16:35:00 2018 New Revision: 1823579 URL: http://svn.apache.org/viewvc?rev=1823579&view=rev Log: WSS4J WSS-622 from SAMLCallback no possible setting SAML2 SubjectConfirmation.NameID
Signed-off-by: Colm O hEigeartaigh <cohei...@apache.org> This closes #9 Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/bean/SubjectBean.java webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/builder/SAML2ComponentBuilder.java Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/bean/SubjectBean.java URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/bean/SubjectBean.java?rev=1823579&r1=1823578&r2=1823579&view=diff ============================================================================== --- webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/bean/SubjectBean.java (original) +++ webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/bean/SubjectBean.java Thu Feb 8 16:35:00 2018 @@ -28,6 +28,7 @@ public class SubjectBean { private String subjectConfirmationMethod; private KeyInfoBean keyInfo; private SubjectConfirmationDataBean subjectConfirmationData; + private NameIDBean subjectConfirmationNameID; /** * Constructor SubjectBean creates a new SubjectBean instance. @@ -212,6 +213,22 @@ public class SubjectBean { } /** + * Get the NameId of the SubjectConfirmation object + * @return the NameId of the SubjectConfirmation object + */ + public NameIDBean getSubjectConfirmationNameID() { + return subjectConfirmationNameID; + } + + /** + * Set the NameID of the SubjectConfirmation object + * @param subjectConfirmationNameID the NameID of the SubjectConfirmation object + */ + public void setSubjectConfirmationNameID(NameIDBean subjectConfirmationNameID) { + this.subjectConfirmationNameID = subjectConfirmationNameID; + } + + /** * Method equals ... * * @param o of type Object Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/builder/SAML2ComponentBuilder.java URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/builder/SAML2ComponentBuilder.java?rev=1823579&r1=1823578&r2=1823579&view=diff ============================================================================== --- webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/builder/SAML2ComponentBuilder.java (original) +++ webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/builder/SAML2ComponentBuilder.java Thu Feb 8 16:35:00 2018 @@ -19,9 +19,6 @@ package org.apache.wss4j.common.saml.builder; -import java.util.ArrayList; -import java.util.List; - import org.apache.wss4j.common.ext.WSSecurityException; import org.apache.wss4j.common.saml.OpenSAMLUtil; import org.apache.wss4j.common.saml.bean.ActionBean; @@ -41,6 +38,11 @@ import org.apache.wss4j.common.saml.bean import org.apache.wss4j.common.saml.bean.SubjectLocalityBean; import org.apache.xml.security.stax.impl.util.IDGenerator; import org.joda.time.DateTime; +import org.opensaml.core.xml.XMLObject; +import org.opensaml.core.xml.XMLObjectBuilderFactory; +import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport; +import org.opensaml.core.xml.schema.XSString; +import org.opensaml.core.xml.schema.impl.XSStringBuilder; import org.opensaml.saml.common.SAMLObjectBuilder; import org.opensaml.saml.common.SAMLVersion; import org.opensaml.saml.ext.saml2delrestrict.Delegate; @@ -71,14 +73,12 @@ import org.opensaml.saml.saml2.core.Subj import org.opensaml.saml.saml2.core.SubjectConfirmation; import org.opensaml.saml.saml2.core.SubjectConfirmationData; import org.opensaml.saml.saml2.core.SubjectLocality; -import org.opensaml.core.xml.XMLObject; -import org.opensaml.core.xml.XMLObjectBuilderFactory; -import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport; -import org.opensaml.core.xml.schema.XSString; -import org.opensaml.core.xml.schema.impl.XSStringBuilder; import org.opensaml.xmlsec.signature.KeyInfo; import org.w3c.dom.Element; +import java.util.ArrayList; +import java.util.List; + /** * Class SAML2ComponentBuilder provides builder methods that can be used * to construct SAML v2.0 statements using the OpenSaml library. @@ -584,13 +584,18 @@ public final class SAML2ComponentBuilder ); } + NameID subjectConfNameId = null; + if (subjectBean.getSubjectConfirmationNameID() != null) { + subjectConfNameId = SAML2ComponentBuilder.createNameID(subjectBean.getSubjectConfirmationNameID()); + } + String confirmationMethodStr = subjectBean.getSubjectConfirmationMethod(); if (confirmationMethodStr == null) { confirmationMethodStr = SAML2Constants.CONF_SENDER_VOUCHES; } SubjectConfirmation subjectConfirmation = SAML2ComponentBuilder.createSubjectConfirmation( - confirmationMethodStr, subjectConfData + confirmationMethodStr, subjectConfData, subjectConfNameId ); subject.getSubjectConfirmations().add(subjectConfirmation); @@ -662,7 +667,8 @@ public final class SAML2ComponentBuilder @SuppressWarnings("unchecked") public static SubjectConfirmation createSubjectConfirmation( String method, - SubjectConfirmationData subjectConfirmationData + SubjectConfirmationData subjectConfirmationData, + NameID subjectConfirmationNameId ) { if (subjectConfirmationBuilder == null) { subjectConfirmationBuilder = (SAMLObjectBuilder<SubjectConfirmation>) @@ -672,6 +678,7 @@ public final class SAML2ComponentBuilder SubjectConfirmation subjectConfirmation = subjectConfirmationBuilder.buildObject(); subjectConfirmation.setMethod(method); subjectConfirmation.setSubjectConfirmationData(subjectConfirmationData); + subjectConfirmation.setNameID(subjectConfirmationNameId); return subjectConfirmation; }