Author: lquack
Date: Tue Aug 9 09:45:58 2016
New Revision: 1755587
URL: http://svn.apache.org/viewvc?rev=1755587&view=rev
Log:
QPID-7346: [Java Broker] Make QpidPrincipal#equals() take the origin into
account
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/UsernamePrincipal.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupPrincipal.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/UsernamePrincipal.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/UsernamePrincipal.java?rev=1755587&r1=1755586&r2=1755587&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/UsernamePrincipal.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/UsernamePrincipal.java
Tue Aug 9 09:45:58 2016
@@ -56,30 +56,37 @@ public class UsernamePrincipal implement
}
@Override
- public int hashCode()
- {
- final int prime = 31;
- return prime * _name.hashCode();
- }
-
- @Override
- public boolean equals(Object obj)
+ public boolean equals(final Object o)
{
- if (this == obj)
+ if (this == o)
{
return true;
}
- else
+ if (o == null || getClass() != o.getClass())
+ {
+ return false;
+ }
+
+ final UsernamePrincipal that = (UsernamePrincipal) o;
+
+ if (!_name.equals(that._name))
{
- if (obj instanceof UsernamePrincipal)
- {
- UsernamePrincipal other = (UsernamePrincipal) obj;
- return _name.equals(other._name);
- }
- else
- {
- return false;
- }
+ return false;
}
+ if (_authenticationProvider == null || that._authenticationProvider ==
null)
+ {
+ return _authenticationProvider == null &&
that._authenticationProvider == null;
+ }
+
+ return
(_authenticationProvider.getType().equals(that._authenticationProvider.getType())
+ &&
_authenticationProvider.getName().equals(that._authenticationProvider.getName()));
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int result = _name.hashCode();
+ result = 31 * result + (_authenticationProvider != null ?
_authenticationProvider.hashCode() : 0);
+ return result;
}
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupPrincipal.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupPrincipal.java?rev=1755587&r1=1755586&r2=1755587&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupPrincipal.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupPrincipal.java
Tue Aug 9 09:45:58 2016
@@ -23,9 +23,7 @@ package org.apache.qpid.server.security.
import java.security.Principal;
import java.util.Enumeration;
-import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.GroupProvider;
import org.apache.qpid.server.security.QpidPrincipal;
/**
@@ -38,21 +36,16 @@ public class GroupPrincipal implements Q
{
/** Name of the group */
private final String _groupName;
- private final GroupProvider<?> _groupProvider;
- private final AuthenticationProvider<?> _groupAuthProvider;
+ private final ConfiguredObject<?> _origin;
- public GroupPrincipal(final String groupName, final GroupProvider<?>
groupProvider)
- {
- _groupName = groupName;
- _groupProvider = groupProvider;
- _groupAuthProvider = null;
- }
-
- public GroupPrincipal(final String groupName, final
AuthenticationProvider<?> groupAuthProvider)
+ public GroupPrincipal(final String groupName, final ConfiguredObject<?>
origin)
{
+ if (groupName == null)
+ {
+ throw new IllegalArgumentException("group name cannot be null");
+ }
_groupName = groupName;
- _groupProvider = null;
- _groupAuthProvider = groupAuthProvider;
+ _origin = origin;
}
public String getName()
@@ -83,39 +76,36 @@ public class GroupPrincipal implements Q
@Override
public ConfiguredObject<?> getOrigin()
{
- return (_groupAuthProvider != null ? _groupAuthProvider :
_groupProvider);
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- public int hashCode()
- {
- final int prime = 37;
- return prime * _groupName.hashCode();
+ return _origin;
}
- /**
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj)
+ @Override
+ public boolean equals(final Object o)
{
- if (this == obj)
+ if (this == o)
{
return true;
}
- else
+ if (o == null || getClass() != o.getClass())
+ {
+ return false;
+ }
+
+ final GroupPrincipal that = (GroupPrincipal) o;
+
+ if (!_groupName.equals(that._groupName))
{
- if (obj instanceof GroupPrincipal)
- {
- GroupPrincipal other = (GroupPrincipal) obj;
- return _groupName.equals(other._groupName);
- }
- else
- {
- return false;
- }
+ return false;
}
+ return _origin != null ? _origin.equals(that._origin) : that._origin
== null;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int result = _groupName.hashCode();
+ result = 31 * result + (_origin != null ? _origin.hashCode() : 0);
+ return result;
}
@Override
Modified:
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java?rev=1755587&r1=1755586&r2=1755587&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java
(original)
+++
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java
Tue Aug 9 09:45:58 2016
@@ -110,7 +110,7 @@ public class ExternalAuthenticationManag
public void testAuthenticatePrincipalCnOnly() throws Exception
{
X500Principal principal = new X500Principal("CN=person");
- UsernamePrincipal expectedPrincipal = new UsernamePrincipal("person",
null);
+ UsernamePrincipal expectedPrincipal = new UsernamePrincipal("person",
_manager);
SaslServer saslServer = _manager.createSaslServer("EXTERNAL",
"example.example.com", principal);
AuthenticationResult result = _manager.authenticate(saslServer, new
byte[0]);
@@ -125,7 +125,7 @@ public class ExternalAuthenticationManag
public void testAuthenticatePrincipalCnAndDc() throws Exception
{
X500Principal principal = new X500Principal("CN=person, DC=example,
DC=com");
- UsernamePrincipal expectedPrincipal = new
UsernamePrincipal("[email protected]", null);
+ UsernamePrincipal expectedPrincipal = new
UsernamePrincipal("[email protected]", _manager);
SaslServer saslServer = _manager.createSaslServer("EXTERNAL",
"example.example.com", principal);
AuthenticationResult result = _manager.authenticate(saslServer, new
byte[0]);
@@ -140,7 +140,7 @@ public class ExternalAuthenticationManag
public void testAuthenticatePrincipalCnDc_OtherComponentsIgnored() throws
Exception
{
X500Principal principal = new X500Principal("CN=person, DC=example,
DC=com, O=My Company Ltd, L=Newbury, ST=Berkshire, C=GB");
- UsernamePrincipal expectedPrincipal = new
UsernamePrincipal("[email protected]", null);
+ UsernamePrincipal expectedPrincipal = new
UsernamePrincipal("[email protected]", _manager);
SaslServer saslServer = _manager.createSaslServer("EXTERNAL",
"example.example.com", principal);
AuthenticationResult result = _manager.authenticate(saslServer, new
byte[0]);
@@ -155,7 +155,7 @@ public class ExternalAuthenticationManag
public void testAuthenticatePrincipalCn_OtherComponentsIgnored() throws
Exception
{
X500Principal principal = new X500Principal("CN=person, O=My Company
Ltd, L=Newbury, ST=Berkshire, C=GB");
- UsernamePrincipal expectedPrincipal = new UsernamePrincipal("person",
null);
+ UsernamePrincipal expectedPrincipal = new UsernamePrincipal("person",
_manager);
SaslServer saslServer = _manager.createSaslServer("EXTERNAL",
"example.example.com", principal);
AuthenticationResult result = _manager.authenticate(saslServer, new
byte[0]);
Modified:
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java?rev=1755587&r1=1755586&r2=1755587&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
(original)
+++
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
Tue Aug 9 09:45:58 2016
@@ -58,7 +58,6 @@ public class PrincipalDatabaseAuthentica
{
private static final String LOCALHOST = "localhost";
private static final String MOCK_MECH_NAME = "MOCK-MECH-NAME";
- private static final UsernamePrincipal PRINCIPAL = new
UsernamePrincipal("guest", null);
private PrincipalDatabaseAuthenticationManager _manager = null; // Class
under test
private PrincipalDatabase _principalDatabase;
@@ -197,7 +196,9 @@ public class PrincipalDatabaseAuthentica
AuthenticationResult result = _manager.authenticate(testServer,
"12345".getBytes());
- assertOnlyContainsWrapped(PRINCIPAL, result.getPrincipals());
+ UsernamePrincipal expectedPrincipal = new UsernamePrincipal("guest",
_manager);
+
+ assertOnlyContainsWrapped(expectedPrincipal, result.getPrincipals());
assertEquals(AuthenticationStatus.SUCCESS, result.getStatus());
}
@@ -243,7 +244,9 @@ public class PrincipalDatabaseAuthentica
when(_principalDatabase.verifyPassword("guest",
"guest".toCharArray())).thenReturn(true);
AuthenticationResult result = _manager.authenticate("guest", "guest");
- assertOnlyContainsWrapped(PRINCIPAL, result.getPrincipals());
+
+ UsernamePrincipal expectedPrincipal = new UsernamePrincipal("guest",
_manager);
+ assertOnlyContainsWrapped(expectedPrincipal, result.getPrincipals());
assertEquals(AuthenticationStatus.SUCCESS, result.getStatus());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]