You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2013/07/04 12:06:21 UTC

svn commit: r1499711 - /webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SecurityTokenImpl.java

Author: coheigea
Date: Thu Jul  4 10:06:21 2013
New Revision: 1499711

URL: http://svn.apache.org/r1499711
Log:
Return the correct TokenType for a v1 X.509 Certificate

Modified:
    webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SecurityTokenImpl.java

Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SecurityTokenImpl.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SecurityTokenImpl.java?rev=1499711&r1=1499710&r2=1499711&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SecurityTokenImpl.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SecurityTokenImpl.java Thu Jul  4 10:06:21 2013
@@ -28,6 +28,7 @@ import org.apache.wss4j.stax.securityTok
 import org.apache.wss4j.stax.securityToken.X509SecurityToken;
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.stax.ext.XMLSecurityConstants;
+import org.apache.xml.security.stax.securityToken.SecurityTokenConstants.TokenType;
 
 import javax.security.auth.Subject;
 import javax.security.auth.callback.CallbackHandler;
@@ -134,4 +135,25 @@ public abstract class X509SecurityTokenI
         }
         return this.principal;
     }
+    
+    @Override
+    public TokenType getTokenType() {
+        TokenType storedTokenType = super.getTokenType();
+        // Just check to see whether the cert version is "1"
+        if (WSSecurityTokenConstants.X509V3Token.equals(storedTokenType)) {
+            X509Certificate[] certs;
+            try {
+                certs = super.getX509Certificates();
+                if (certs != null && certs.length > 0 && certs[0].getVersion() == 1) {
+                    return WSSecurityTokenConstants.X509V1Token;
+                }
+            } catch (XMLSecurityException e) {
+                return storedTokenType;
+            }
+        }
+        
+        return storedTokenType;
+        
+        
+    }
 }