[jboss-cvs] JBossAS SVN: r86543 - branches/JBPAPP_4_3_0_GA_CP04_JBPAPP-1841/security/src/main/org/jboss/security.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 31 13:57:31 EDT 2009
Author: mmoyses
Date: 2009-03-31 13:57:31 -0400 (Tue, 31 Mar 2009)
New Revision: 86543
Modified:
branches/JBPAPP_4_3_0_GA_CP04_JBPAPP-1841/security/src/main/org/jboss/security/SimplePrincipal.java
Log:
JBPAPP-1846: modified equals method to compare only instances of SimplePrincipal when system property org.jboss.security.simpleprincipal.equals.override=true
Modified: branches/JBPAPP_4_3_0_GA_CP04_JBPAPP-1841/security/src/main/org/jboss/security/SimplePrincipal.java
===================================================================
--- branches/JBPAPP_4_3_0_GA_CP04_JBPAPP-1841/security/src/main/org/jboss/security/SimplePrincipal.java 2009-03-31 17:37:40 UTC (rev 86542)
+++ branches/JBPAPP_4_3_0_GA_CP04_JBPAPP-1841/security/src/main/org/jboss/security/SimplePrincipal.java 2009-03-31 17:57:31 UTC (rev 86543)
@@ -21,7 +21,9 @@
*/
package org.jboss.security;
+import java.security.AccessController;
import java.security.Principal;
+import java.security.PrivilegedAction;
/**
* A simple String based implementation of Principal. Typically a
@@ -35,6 +37,7 @@
{
static final long serialVersionUID = 7701951188631723261L;
private String name;
+ private static final String OVERRIDE_EQUALS_BEHAVIOR = "org.jboss.security.simpleprincipal.equals.override";
public SimplePrincipal(String name)
{
@@ -42,13 +45,26 @@
}
/**
- * Compare this SimplePrincipal's name against another Principal
+ * Compare this SimplePrincipal's name against another Principal. If system property
+ * org.jboss.security.simpleprincipal.equals.override is set to true will only
+ * compare instances of SimplePrincipals.
* @return true if name equals another.getName();
- */
+ **/
public boolean equals(Object another)
{
if (!(another instanceof Principal))
return false;
+ if ("true".equals(AccessController.doPrivileged(new PrivilegedAction()
+ {
+ public Object run()
+ {
+ return System.getProperty(OVERRIDE_EQUALS_BEHAVIOR, "false");
+ }
+ })))
+ {
+ if (!(another instanceof SimplePrincipal))
+ return false;
+ }
String anotherName = ((Principal) another).getName();
boolean equals = false;
if (name == null)
More information about the jboss-cvs-commits
mailing list