svn commit: r943049 - /axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java
Author: prabath Date: Tue May 11 08:53:52 2010 New Revision: 943049 URL: http://svn.apache.org/viewvc?rev=943049&view=rev Log: Fixing https://issues.apache.org/jira/browse/RAMPART-279 - Thanks Thilina for the patch Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java?rev=943049&r1=943048&r2=943049&view=diff == --- axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java (original) +++ axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java Tue May 11 08:53:52 2010 @@ -359,6 +359,11 @@ public class RahasData { if (str.containsReference()) { tokenId = str.getReference().getURI(); } +if(tokenId == null){ +if(str.containsKeyIdentifier()){ +tokenId = str.getKeyIdentifierValue(); +} +} } catch (WSSecurityException e) { throw new TrustException("errorExtractingTokenId",e); }
svn commit: r943055 - in /axis/axis2/java/rampart/trunk/modules: rampart-core/src/main/java/org/apache/rampart/ rampart-trust/src/main/java/org/apache/rahas/impl/ rampart-trust/src/main/java/org/apach
Author: prabath Date: Tue May 11 09:13:23 2010 New Revision: 943055 URL: http://svn.apache.org/viewvc?rev=943055&view=rev Log: Fixing https://issues.apache.org/jira/browse/RAMPART-285 - Thanks Thilina for the patch Modified: axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAML2Utils.java Modified: axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java?rev=943055&r1=943054&r2=943055&view=diff == --- axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java (original) +++ axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java Tue May 11 09:13:23 2010 @@ -40,6 +40,7 @@ import org.opensaml.SAMLAssertion; import org.opensaml.saml2.core.Assertion; import org.opensaml.saml2.core.Subject; import org.opensaml.saml2.core.SubjectConfirmationData; +import org.opensaml.saml2.core.Conditions; import javax.xml.namespace.QName; import java.security.Principal; @@ -182,10 +183,29 @@ public class RampartEngine { final Assertion assertion = (Assertion) wser.get(WSSecurityEngineResult.TAG_SAML_ASSERTION); String id = assertion.getID(); Subject subject = assertion.getSubject(); -SubjectConfirmationData scData = subject.getSubjectConfirmations() -.get(0).getSubjectConfirmationData(); -Date dateOfCreation = scData.getNotBefore().toDate(); -Date dateOfExpiration = scData.getNotOnOrAfter().toDate(); + +Date dateOfCreation = null; +Date dateOfExpiration = null; + +//Read the validity period from the 'Conditions' element, else read it from SC Data +if (assertion.getConditions() != null) { +Conditions conditions = assertion.getConditions(); +if (conditions.getNotBefore() != null) { +dateOfCreation = conditions.getNotBefore().toDate(); +} +if (conditions.getNotOnOrAfter() != null) { +dateOfExpiration = conditions.getNotOnOrAfter().toDate(); +} +} else { +SubjectConfirmationData scData = subject.getSubjectConfirmations() +.get(0).getSubjectConfirmationData(); +if (scData.getNotBefore() != null) { +dateOfCreation = scData.getNotBefore().toDate(); +} +if (scData.getNotOnOrAfter() != null) { +dateOfExpiration = scData.getNotOnOrAfter().toDate(); +} +} // TODO : SAML2KeyInfo element needs to be moved to WSS4J. SAML2KeyInfo saml2KeyInfo = SAML2Utils. Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java?rev=943055&r1=943054&r2=943055&view=diff == --- axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java (original) +++ axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java Tue May 11 09:13:23 2010 @@ -52,10 +52,7 @@ import org.opensaml.xml.io.*; import org.opensaml.common.SAMLVersion; import org.opensaml.common.SAMLObjectBuilder; import org.opensaml.common.xml.SAMLConstants; -import org.opensaml.saml2.core.impl.AssertionBuilder; -import org.opensaml.saml2.core.impl.IssuerBuilder; -import org.opensaml.saml2.core.impl.NameIDBuilder; -import org.opensaml.saml2.core.impl.SubjectBuilder; +import org.opensaml.saml2.core.impl.*; import org.opensaml.saml2.core.*; import org.opensaml.saml2.metadata.EntitiesDescriptor; import org.joda.time.DateTime; @@ -191,6 +188,11 @@ public class SAML2TokenIssuer implements Date creationTime = creationDate.toDate(); Date expirationTime = expirationDate.toDate(); +Conditions conditions = new ConditionsBuilder().buildObject(); +conditions.se
svn commit: r943058 - /axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
Author: prabath Date: Tue May 11 09:16:48 2010 New Revision: 943058 URL: http://svn.apache.org/viewvc?rev=943058&view=rev Log: Fixing issue https://issues.apache.org/jira/browse/RAMPART-291 - Thanks Thilina for the patch Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java?rev=943058&r1=943057&r2=943058&view=diff == --- axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java (original) +++ axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java Tue May 11 09:16:48 2010 @@ -16,69 +16,72 @@ package org.apache.rahas.impl; -import org.apache.rahas.*; -import org.apache.rahas.TrustException; -import org.apache.rahas.impl.util.SignKeyHolder; -import org.apache.rahas.impl.util.SAMLAttributeCallback; -import org.apache.rahas.impl.util.SAMLCallbackHandler; -import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMNode; -import org.apache.axiom.om.util.UUIDGenerator; import org.apache.axiom.om.impl.dom.jaxp.DocumentBuilderFactoryImpl; +import org.apache.axiom.om.util.UUIDGenerator; +import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axis2.context.MessageContext; import org.apache.axis2.description.Parameter; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.rahas.*; +import org.apache.rahas.impl.util.SAMLAttributeCallback; +import org.apache.rahas.impl.util.SAMLCallbackHandler; +import org.apache.rahas.impl.util.SignKeyHolder; +import org.apache.ws.security.WSConstants; +import org.apache.ws.security.WSSecurityException; import org.apache.ws.security.components.crypto.Crypto; import org.apache.ws.security.components.crypto.CryptoFactory; import org.apache.ws.security.message.WSSecEncryptedKey; -import org.apache.ws.security.WSConstants; -import org.apache.ws.security.WSSecurityException; import org.apache.ws.security.util.Base64; +import org.apache.ws.security.util.Loader; import org.apache.ws.security.util.XmlSchemaDateFormat; -import org.apache.xml.security.utils.EncryptionConstants; import org.apache.xml.security.c14n.Canonicalizer; import org.apache.xml.security.signature.XMLSignature; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.opensaml.*; +import org.apache.xml.security.utils.EncryptionConstants; +import org.joda.time.DateTime; import org.opensaml.Configuration; +import org.opensaml.DefaultBootstrap; +import org.opensaml.SAMLException; +import org.opensaml.common.SAMLObjectBuilder; +import org.opensaml.common.SAMLVersion; import org.opensaml.saml1.core.NameIdentifier; -import org.opensaml.xml.*; -import org.opensaml.xml.schema.impl.XSStringBuilder; +import org.opensaml.saml2.core.*; +import org.opensaml.saml2.core.impl.AssertionBuilder; +import org.opensaml.saml2.core.impl.ConditionsBuilder; +import org.opensaml.saml2.core.impl.IssuerBuilder; +import org.opensaml.saml2.core.impl.NameIDBuilder; +import org.opensaml.xml.ConfigurationException; +import org.opensaml.xml.XMLObject; +import org.opensaml.xml.XMLObjectBuilder; +import org.opensaml.xml.XMLObjectBuilderFactory; +import org.opensaml.xml.io.*; import org.opensaml.xml.schema.XSString; -import org.opensaml.xml.security.x509.X509Credential; +import org.opensaml.xml.schema.impl.XSStringBuilder; import org.opensaml.xml.signature.*; -import org.opensaml.xml.io.*; -import org.opensaml.common.SAMLVersion; -import org.opensaml.common.SAMLObjectBuilder; -import org.opensaml.common.xml.SAMLConstants; -import org.opensaml.saml2.core.impl.*; -import org.opensaml.saml2.core.*; -import org.opensaml.saml2.metadata.EntitiesDescriptor; -import org.joda.time.DateTime; import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.w3c.dom.Text; import org.w3c.dom.Node; +import org.w3c.dom.Text; +import org.w3c.dom.bootstrap.DOMImplementationRegistry; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSOutput; import org.w3c.dom.ls.LSSerializer; -import org.w3c.dom.bootstrap.DOMImplementationRegistry; import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; -import java.util.Date; -import java.util.List; -import java.util.ArrayList; -import java.util.Arrays; -import java.security.cert.X509Certificate; -import java.security.cert.CertificateEncodingException; -import java.security.PrivateKey; -import java.text.DateFormat; -import java.io.InputStream; +import javax.xml.
svn commit: r943225 - in /axis/axis2/java/core/trunk/modules: jaxws-integration/test/org/apache/axis2/jaxws/sample/ jaxws-integration/test/org/apache/axis2/jaxws/sample/dlwmin/ jaxws/src/org/apache/ax
Author: scheu Date: Tue May 11 18:45:41 2010 New Revision: 943225 URL: http://svn.apache.org/viewvc?rev=943225&view=rev Log: AXIS2-4710 Contributor: Rich Scheuerle Remove rpc/lit checking from doc/lit flow. Also added a unit test. Modified: axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/DLWMinTests.java axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/dlwmin/GreeterImpl.java axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java Modified: axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/DLWMinTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/DLWMinTests.java?rev=943225&r1=943224&r2=943225&view=diff == --- axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/DLWMinTests.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/DLWMinTests.java Tue May 11 18:45:41 2010 @@ -100,6 +100,25 @@ public class DLWMinTests extends Abstrac } /** + * Test simple greetMe method + * with style doc/lit wrapped without the presence of wrapper classes. + * Passing a null input and receiving a null return + */ +public void testGreetMe_Null() { + + +Greeter proxy = getProxy("greetMe"); + +String me = null; +String response = proxy.greetMe(me); +assertTrue("Expected null but received " + response, response == null); + +// Try the call again +response = proxy.greetMe(me); +assertTrue("Expected null but received " + response, response == null); +} + +/** * Test simple greetMe method with dispatch * with style doc/lit wrapped without the presence of wrapper classes. */ Modified: axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/dlwmin/GreeterImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/dlwmin/GreeterImpl.java?rev=943225&r1=943224&r2=943225&view=diff == --- axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/dlwmin/GreeterImpl.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/dlwmin/GreeterImpl.java Tue May 11 18:45:41 2010 @@ -35,7 +35,11 @@ import javax.xml.ws.WebServiceException; public class GreeterImpl implements Greeter { public String greetMe(String me) { -return "Hello " + me; +if (me == null) { +return null; +} else { +return "Hello " + me; +} } public String testUnqualified(String in) { Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java?rev=943225&r1=943224&r2=943225&view=diff == --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java Tue May 11 18:45:41 2010 @@ -61,7 +61,6 @@ import java.util.Map; import java.util.TreeSet; /** - * The Doc/Lit Wrapped Minimal Marshaller is used when * 1) The web service is Doc/Lit Wrapped, and * 2) The wrapper and fault bean objects are missing (hence the term 'Minimal') * @@ -341,16 +340,6 @@ public class DocLitWrappedMinimalMethodM } if (returnType != void.class) { - -// TODO should we allow null if the return is a header? -//Validate input parameters for operation and make sure no input parameters are null. -//As per JAXWS Specification section 3.6.2.3 if a null value is passes as an argument -//to a method then an implementation MUST throw WebServiceException. -if (returnObject == null) { -throw ExceptionFactory.makeWebServiceException( - Messages.getMessage("NullParamErr3",operationDesc.getJavaMethodName())); - -} Element returnElement = null; QName returnQName = new QName(returnNS, returnLocalPart); if