Author: ruchithf
Date: Sat Jul 7 07:45:27 2007
New Revision: 554212
URL: http://svn.apache.org/viewvc?view=rev&rev=554212
Log:
Updated SAML token issuer to pick the certificate by the username when
requesting for a SAML token that includes the requestor's cert authenticated by
a UsernameToken
Got rid of the depreceated message receiver that STSMessageReceiver extended
Modified:
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
Modified:
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java?view=diff&rev=554212&r1=554211&r2=554212
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java
Sat Jul 7 07:45:27 2007
@@ -16,18 +16,18 @@
package org.apache.rahas;
-import javax.xml.namespace.QName;
-
import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.Parameter;
-import org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver;
+import org.apache.axis2.receivers.AbstractInOutMessageReceiver;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-public class STSMessageReceiver extends AbstractInOutSyncMessageReceiver {
+import javax.xml.namespace.QName;
+
+public class STSMessageReceiver extends AbstractInOutMessageReceiver {
private static final Log log =
LogFactory.getLog(STSMessageReceiver.class);
@@ -66,5 +66,6 @@
throw new AxisFault(e.getFaultString(), e.getFaultCode());
}
}
+
}
Modified:
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java?view=diff&rev=554212&r1=554211&r2=554212
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
Sat Jul 7 07:45:27 2007
@@ -120,6 +120,7 @@
client.getServiceContext().setProperty(RAMPART_POLICY,
issuerPolicy);
client.getOptions().setSoapVersionURI(this.soapVersion);
+ client.engageModule("addressing");
//Process the STS and service policy policy
this.processPolicy(issuerPolicy, servicePolicy);
Modified:
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java?view=diff&rev=554212&r1=554211&r2=554212
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
Sat Jul 7 07:45:27 2007
@@ -332,7 +332,16 @@
subjectNameId, null, SAMLNameIdentifier.FORMAT_EMAIL);
// Create the ds:KeyValue element with the ds:X509Data
- byte[] clientCertBytes = data.getClientCert().getEncoded();
+ X509Certificate clientCert = data.getClientCert();
+
+ if(clientCert == null) {
+ X509Certificate[] certs = crypto.getCertificates(
+ data.getPrincipal().getName());
+ clientCert = certs[0];
+ }
+
+ byte[] clientCertBytes = clientCert.getEncoded();
+
String base64Cert = Base64.encode(clientCertBytes);
Text base64CertText = doc.createTextNode(base64Cert);
@@ -349,9 +358,7 @@
return this.createAuthAssertion(doc,
SAMLSubject.CONF_HOLDER_KEY, nameId, keyValueElem,
config, crypto, creationTime, expirationTime);
- } catch (SAMLException e) {
- throw new TrustException("samlAssertionCreationError", e);
- } catch (CertificateEncodingException e) {
+ } catch (Exception e) {
throw new TrustException("samlAssertionCreationError", e);
}
}