Author: coheigea
Date: Wed Dec 22 11:05:09 2010
New Revision: 1051835

URL: http://svn.apache.org/viewvc?rev=1051835&view=rev
Log:
[WSS-261] - Added support for processing SAML Subject Confirmation keys that use
 issuer serial.

Modified:
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java?rev=1051835&r1=1051834&r2=1051835&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java 
(original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java 
Wed Dec 22 11:05:09 2010
@@ -51,6 +51,7 @@ import javax.xml.crypto.dsig.keyinfo.Key
 import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
 import javax.xml.crypto.dsig.keyinfo.KeyValue;
 import javax.xml.crypto.dsig.keyinfo.X509Data;
+import javax.xml.crypto.dsig.keyinfo.X509IssuerSerial;
 import javax.xml.namespace.QName;
 
 import java.security.PublicKey;
@@ -164,6 +165,14 @@ public class SAMLUtil {
                                         certs = new X509Certificate[1];
                                         certs[0] = (X509Certificate)x509obj;
                                         return new SAMLKeyInfo(assertion, 
certs);
+                                    } else if (x509obj instanceof 
X509IssuerSerial) {
+                                        String alias = 
+                                            crypto.getAliasForX509Cert(
+                                                
((X509IssuerSerial)x509obj).getIssuerName(), 
+                                                
((X509IssuerSerial)x509obj).getSerialNumber()
+                                            );
+                                        certs = crypto.getCertificates(alias);
+                                        return new SAMLKeyInfo(assertion, 
certs);
                                     }
                                 }
                             }

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java?rev=1051835&r1=1051834&r2=1051835&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java
 Wed Dec 22 11:05:09 2010
@@ -61,6 +61,7 @@ import javax.xml.crypto.dsig.keyinfo.Key
 import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
 import javax.xml.crypto.dsig.keyinfo.KeyValue;
 import javax.xml.crypto.dsig.keyinfo.X509Data;
+import javax.xml.crypto.dsig.keyinfo.X509IssuerSerial;
 import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
 import javax.xml.crypto.dsig.spec.ExcC14NParameterSpec;
 
@@ -288,6 +289,14 @@ public class WSSecSignatureSAML extends 
                                 certs = new X509Certificate[1];
                                 certs[0] = (X509Certificate)x509obj;
                                 break;
+                            } else if (x509obj instanceof X509IssuerSerial) {
+                                String alias = 
+                                    userCrypto.getAliasForX509Cert(
+                                        
((X509IssuerSerial)x509obj).getIssuerName(), 
+                                        
((X509IssuerSerial)x509obj).getSerialNumber()
+                                    );
+                                certs = userCrypto.getCertificates(alias);
+                                break;
                             }
                         }
                     }


Reply via email to