From 18af78aa711978611fa618ce82170029f4c5476a Mon Sep 17 00:00:00 2001 From: Christian Hilmersson Date: Wed, 22 Feb 2012 02:10:51 +0100 Subject: [PATCH] SEC-1921: Fixes so that SimpleGrantedAuthority can be compared, using the equals method, with any GrantedAuthority implementation. Also adds a test checking that it is possible to use SimpleGrantedAuthority.equals in that way. --- .../core/authority/SimpleGrantedAuthority.java | 4 ++-- .../core/authority/SimpleGrantedAuthorityTests.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/springframework/security/core/authority/SimpleGrantedAuthority.java b/core/src/main/java/org/springframework/security/core/authority/SimpleGrantedAuthority.java index ca8dfcb962d..baea2091cc0 100644 --- a/core/src/main/java/org/springframework/security/core/authority/SimpleGrantedAuthority.java +++ b/core/src/main/java/org/springframework/security/core/authority/SimpleGrantedAuthority.java @@ -33,8 +33,8 @@ public boolean equals(Object obj) { return true; } - if (obj instanceof SimpleGrantedAuthority) { - return role.equals(((SimpleGrantedAuthority) obj).role); + if (obj instanceof GrantedAuthority) { + return role.equals(((GrantedAuthority) obj).getAuthority()); } return false; diff --git a/core/src/test/java/org/springframework/security/core/authority/SimpleGrantedAuthorityTests.java b/core/src/test/java/org/springframework/security/core/authority/SimpleGrantedAuthorityTests.java index a96360ae346..b880dbd43a9 100644 --- a/core/src/test/java/org/springframework/security/core/authority/SimpleGrantedAuthorityTests.java +++ b/core/src/test/java/org/springframework/security/core/authority/SimpleGrantedAuthorityTests.java @@ -50,5 +50,17 @@ public void toStringReturnsAuthorityValue() { SimpleGrantedAuthority auth = new SimpleGrantedAuthority("TEST"); assertEquals("TEST", auth.toString()); } + + @Test + public void equalityWithGrantedAuthority() { + GrantedAuthority grantedAuthority = new GrantedAuthority() { + private static final long serialVersionUID = 1L; + public String getAuthority() { + return "ROLE_STATIC"; + } + }; + SimpleGrantedAuthority simpleGrantedAuthority = new SimpleGrantedAuthority("ROLE_STATIC"); + Assert.assertTrue(simpleGrantedAuthority.equals(grantedAuthority)); + } }