[jboss-cvs] JBossAS SVN: r84069 - in projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss: security and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Feb 10 12:00:00 EST 2009
Author: anil.saldhana at jboss.com
Date: 2009-02-10 12:00:00 -0500 (Tue, 10 Feb 2009)
New Revision: 84069
Modified:
projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/crypto/JBossSXProvider.java
projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/security/SecurityActions.java
projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/security/SimplePrincipal.java
Log:
SECURITY-345: loadtime serial version uid generation to take care of JBAS4.x and 5.x incompatibility
Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/crypto/JBossSXProvider.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/crypto/JBossSXProvider.java 2009-02-10 16:42:37 UTC (rev 84068)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/crypto/JBossSXProvider.java 2009-02-10 17:00:00 UTC (rev 84069)
@@ -21,6 +21,9 @@
*/
package org.jboss.crypto;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
/** A Java2 security provider for cryptographic algorithms provided by
the JBossSX framework.
@@ -29,7 +32,7 @@
*/
public class JBossSXProvider extends java.security.Provider
{
- private static final long serialVersionUID = -2338131128387727845L;
+ private static final long serialVersionUID = suid();
public static final String PROVIDER_NAME = "JBossSX";
public static final String PROVIDER_INFO = "JBossSX Provier Version 1.0";
public static final double PROVIDER_VERSION = 1.0;
@@ -50,5 +53,32 @@
super.put("MessageDigest.SHA_ReverseInterleave", "org.jboss.crypto.digest.SHAReverseInterleave");
super.put("Alg.Alias.MessageDigest.SHA-SRP-Reverse", "SHA_ReverseInterleave");
}
-
-}
+
+ //https://jira.jboss.org/jira/browse/SECURITY-365
+ private static long suid()
+ {
+ //Load JBossSecurityContext - if exists implies JBAS5.x onwards
+ try
+ {
+ ClassLoader cl = getContextClassLoader();
+ cl.loadClass("org.jboss.security.plugins.JBossSecurityContext");
+ return 1L;
+ }
+ catch(Throwable t)
+ {
+ }
+ //Pre-JBAS5.x code
+ return -2338131128387727845L;
+ }
+
+ private static ClassLoader getContextClassLoader()
+ {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+ {
+ public ClassLoader run()
+ {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
+}
\ No newline at end of file
Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/security/SecurityActions.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/security/SecurityActions.java 2009-02-10 16:42:37 UTC (rev 84068)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/security/SecurityActions.java 2009-02-10 17:00:00 UTC (rev 84069)
@@ -78,4 +78,15 @@
}
return prop;
}
+
+ static ClassLoader getContextClassLoader()
+ {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+ {
+ public ClassLoader run()
+ {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
}
Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/security/SimplePrincipal.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/security/SimplePrincipal.java 2009-02-10 16:42:37 UTC (rev 84068)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/java/org/jboss/security/SimplePrincipal.java 2009-02-10 17:00:00 UTC (rev 84069)
@@ -33,7 +33,7 @@
*/
public class SimplePrincipal implements Principal, Serializable
{
- private static final long serialVersionUID = 7701951188631723261L;
+ private static final long serialVersionUID = suid();
private final String name;
public SimplePrincipal(String name)
@@ -76,4 +76,21 @@
{
return name;
}
+
+ //https://jira.jboss.org/jira/browse/SECURITY-365
+ private static long suid()
+ {
+ //Load JBossSecurityContext - if exists implies JBAS5.x onwards
+ try
+ {
+ ClassLoader cl = SecurityActions.getContextClassLoader();
+ cl.loadClass("org.jboss.security.plugins.JBossSecurityContext");
+ return 1L;
+ }
+ catch(Throwable t)
+ {
+ }
+ //Pre-JBAS5.x code
+ return 7701951188631723261L;
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list