diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java index 8cdd2a5772..0c263b17f3 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java @@ -16,8 +16,6 @@ package org.springframework.security.acls.domain; import java.io.Serializable; import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; import java.util.List; import org.springframework.security.acls.AccessControlEntry; @@ -329,17 +327,16 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl { sb.append("objectIdentity: ").append(this.objectIdentity).append("; "); sb.append("owner: ").append(this.owner).append("; "); - Iterator iterator = this.aces.iterator(); int count = 0; - while (iterator.hasNext()) { + for (AccessControlEntry ace : aces) { count++; if (count == 1) { sb.append("\r\n"); } - sb.append(iterator.next().toString()).append("\r\n"); + sb.append(ace).append("\r\n"); } if (count == 0) { diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java index bfe7025d06..70420b97ad 100644 --- a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java +++ b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java @@ -14,31 +14,26 @@ */ package org.springframework.security.acls.jdbc; -import org.springframework.security.acls.Acl; -import org.springframework.security.acls.AclService; -import org.springframework.security.acls.NotFoundException; -import org.springframework.security.acls.objectidentity.ObjectIdentity; -import org.springframework.security.acls.objectidentity.ObjectIdentityImpl; -import org.springframework.security.acls.sid.Sid; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.core.RowMapper; - -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - import java.sql.ResultSet; import java.sql.SQLException; - import java.util.Arrays; import java.util.List; import java.util.Map; import javax.sql.DataSource; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.security.acls.Acl; +import org.springframework.security.acls.AclService; +import org.springframework.security.acls.NotFoundException; +import org.springframework.security.acls.objectidentity.ObjectIdentity; +import org.springframework.security.acls.objectidentity.ObjectIdentityImpl; +import org.springframework.security.acls.sid.Sid; +import org.springframework.util.Assert; + /** * Simple JDBC-based implementation of AclService. diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java index 09f4751fe9..af507746fb 100644 --- a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java +++ b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java @@ -82,8 +82,7 @@ public class JdbcMutableAclService extends JdbcAclService implements MutableAclS //~ Methods ======================================================================================================== - public MutableAcl createAcl(ObjectIdentity objectIdentity) - throws AlreadyExistsException { + public MutableAcl createAcl(ObjectIdentity objectIdentity) throws AlreadyExistsException { Assert.notNull(objectIdentity, "Object Identity required"); // Check this object identity hasn't already been persisted @@ -217,8 +216,7 @@ public class JdbcMutableAclService extends JdbcAclService implements MutableAclS return null; } - public void deleteAcl(ObjectIdentity objectIdentity, boolean deleteChildren) - throws ChildrenExistException { + public void deleteAcl(ObjectIdentity objectIdentity, boolean deleteChildren) throws ChildrenExistException { Assert.notNull(objectIdentity, "Object Identity required"); Assert.notNull(objectIdentity.getIdentifier(), "Object Identity doesn't provide an identifier"); diff --git a/acl/src/main/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml b/acl/src/main/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml index 95e26d1fe0..d069262bf7 100644 --- a/acl/src/main/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml +++ b/acl/src/main/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml @@ -10,60 +10,58 @@ --> + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - + + + + + + + + + diff --git a/acl/src/main/resources/org/springframework/security/acls/jdbc/testData.sql b/acl/src/main/resources/org/springframework/security/acls/jdbc/testData.sql index 28d596a3f5..1f58ab5277 100644 --- a/acl/src/main/resources/org/springframework/security/acls/jdbc/testData.sql +++ b/acl/src/main/resources/org/springframework/security/acls/jdbc/testData.sql @@ -17,7 +17,7 @@ ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 100) NOT NULL PRIMARY KEY, CLASS VARCHAR_IGNORECASE(100) NOT NULL, CONSTRAINT UNIQUE_UK_2 UNIQUE(CLASS)); -INSERT INTO ACL_CLASS VALUES (1, 'sample.contact.Contact'); +--INSERT INTO ACL_CLASS VALUES (1, 'sample.contact.Contact'); CREATE TABLE ACL_OBJECT_IDENTITY( ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 100) NOT NULL PRIMARY KEY, diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java index e4a9d5e7ba..89841bde0e 100644 --- a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java +++ b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java @@ -28,7 +28,7 @@ public class AccessControlImplEntryTests { public void testConstructorRequiredFields() { // Check Acl field is present try { - AccessControlEntry ace = new AccessControlEntryImpl(null, null, new PrincipalSid("johndoe"), + new AccessControlEntryImpl(null, null, new PrincipalSid("johndoe"), BasePermission.ADMINISTRATION, true, true, true); fail("It should have thrown IllegalArgumentException"); } @@ -37,7 +37,7 @@ public class AccessControlImplEntryTests { // Check Sid field is present try { - AccessControlEntry ace = new AccessControlEntryImpl(null, jmock.mock(Acl.class), null, + new AccessControlEntryImpl(null, jmock.mock(Acl.class), null, BasePermission.ADMINISTRATION, true, true, true); fail("It should have thrown IllegalArgumentException"); } @@ -46,7 +46,7 @@ public class AccessControlImplEntryTests { // Check Permission field is present try { - AccessControlEntry ace = new AccessControlEntryImpl(null, jmock.mock(Acl.class), new PrincipalSid("johndoe"), null, + new AccessControlEntryImpl(null, jmock.mock(Acl.class), new PrincipalSid("johndoe"), null, true, true, true); fail("It should have thrown IllegalArgumentException"); } diff --git a/cas/src/test/java/org/springframework/security/providers/cas/CasAuthenticationProviderTests.java b/cas/src/test/java/org/springframework/security/providers/cas/CasAuthenticationProviderTests.java index a0fe7b9ad3..27668640c9 100644 --- a/cas/src/test/java/org/springframework/security/providers/cas/CasAuthenticationProviderTests.java +++ b/cas/src/test/java/org/springframework/security/providers/cas/CasAuthenticationProviderTests.java @@ -167,7 +167,7 @@ public class CasAuthenticationProviderTests { UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(CasProcessingFilter.CAS_STATEFUL_IDENTIFIER, ""); - Authentication result = cap.authenticate(token); + cap.authenticate(token); } @Test(expected = BadCredentialsException.class) diff --git a/core/src/main/java/org/springframework/security/GrantedAuthority.java b/core/src/main/java/org/springframework/security/GrantedAuthority.java index ed6b379147..f35c1b67e3 100644 --- a/core/src/main/java/org/springframework/security/GrantedAuthority.java +++ b/core/src/main/java/org/springframework/security/GrantedAuthority.java @@ -34,7 +34,7 @@ import org.springframework.security.userdetails.UserDetails; * @author Ben Alex * @version $Id$ */ -public interface GrantedAuthority extends Serializable, Comparable { +public interface GrantedAuthority extends Serializable, Comparable { //~ Methods ======================================================================================================== /** diff --git a/core/src/main/java/org/springframework/security/GrantedAuthorityImpl.java b/core/src/main/java/org/springframework/security/GrantedAuthorityImpl.java index c705dd89c3..f688287f40 100644 --- a/core/src/main/java/org/springframework/security/GrantedAuthorityImpl.java +++ b/core/src/main/java/org/springframework/security/GrantedAuthorityImpl.java @@ -22,11 +22,11 @@ import org.springframework.util.Assert; /** * Basic concrete implementation of a {@link GrantedAuthority}. - * + * *

* Stores a String representation of an authority granted to the {@link Authentication} object. *

- * If compared to a custom authority which returns null from {@link #getAuthority}, the compareTo + * If compared to a custom authority which returns null from {@link #getAuthority}, the compareTo * method will return -1, so the custom authority will take precedence. * * @author Ben Alex @@ -73,14 +73,14 @@ public class GrantedAuthorityImpl implements GrantedAuthority, Serializable { return this.role; } - public int compareTo(Object o) { - if (o != null && o instanceof GrantedAuthority) { - String rhsRole = ((GrantedAuthority) o).getAuthority(); - + public int compareTo(GrantedAuthority ga) { + if (ga != null) { + String rhsRole = ga.getAuthority(); + if (rhsRole == null) { return -1; } - + return role.compareTo(rhsRole); } return -1; diff --git a/core/src/main/java/org/springframework/security/vote/AffirmativeBased.java b/core/src/main/java/org/springframework/security/vote/AffirmativeBased.java index e836e01f76..e6773ebd5c 100644 --- a/core/src/main/java/org/springframework/security/vote/AffirmativeBased.java +++ b/core/src/main/java/org/springframework/security/vote/AffirmativeBased.java @@ -15,13 +15,12 @@ package org.springframework.security.vote; +import java.util.List; + import org.springframework.security.AccessDeniedException; import org.springframework.security.Authentication; import org.springframework.security.ConfigAttribute; -import java.util.Iterator; -import java.util.List; - /** * Simple concrete implementation of {@link org.springframework.security.AccessDecisionManager} that grants access if any @@ -44,11 +43,9 @@ public class AffirmativeBased extends AbstractAccessDecisionManager { */ public void decide(Authentication authentication, Object object, List configAttributes) throws AccessDeniedException { - Iterator iter = this.getDecisionVoters().iterator(); int deny = 0; - while (iter.hasNext()) { - AccessDecisionVoter voter = (AccessDecisionVoter) iter.next(); + for (AccessDecisionVoter voter : getDecisionVoters()) { int result = voter.vote(authentication, object, configAttributes); switch (result) { diff --git a/core/src/main/java/org/springframework/security/vote/AuthenticatedVoter.java b/core/src/main/java/org/springframework/security/vote/AuthenticatedVoter.java index 7afc69f090..2dde5b35e5 100644 --- a/core/src/main/java/org/springframework/security/vote/AuthenticatedVoter.java +++ b/core/src/main/java/org/springframework/security/vote/AuthenticatedVoter.java @@ -15,16 +15,14 @@ package org.springframework.security.vote; +import java.util.List; + import org.springframework.security.Authentication; import org.springframework.security.AuthenticationTrustResolver; import org.springframework.security.AuthenticationTrustResolverImpl; import org.springframework.security.ConfigAttribute; - import org.springframework.util.Assert; -import java.util.Iterator; -import java.util.List; - /** * Votes if a {@link ConfigAttribute#getAttribute()} of IS_AUTHENTICATED_FULLY or diff --git a/core/src/main/java/org/springframework/security/vote/LabelBasedAclVoter.java b/core/src/main/java/org/springframework/security/vote/LabelBasedAclVoter.java index ff57fa5111..da224dbc72 100644 --- a/core/src/main/java/org/springframework/security/vote/LabelBasedAclVoter.java +++ b/core/src/main/java/org/springframework/security/vote/LabelBasedAclVoter.java @@ -14,21 +14,17 @@ */ package org.springframework.security.vote; -import org.springframework.security.Authentication; -import org.springframework.security.ConfigAttribute; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import org.aopalliance.intercept.MethodInvocation; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - +import org.springframework.security.Authentication; +import org.springframework.security.ConfigAttribute; import org.springframework.util.Assert; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; -import java.util.Map; - /** *

This Acl voter will evaluate methods based on labels applied to incoming arguments. It will only check @@ -57,7 +53,7 @@ public class LabelBasedAclVoter extends AbstractAclVoter { //~ Instance fields ================================================================================================ - private Map labelMap = null; + private Map> labelMap = null; private String attributeIndicatingLabeledOperation = null; private boolean allowAccessIfNoAttributesAreLabeled = true; @@ -136,7 +132,7 @@ public class LabelBasedAclVoter extends AbstractAclVoter { * @param labelMap a map structured as in the above example. * */ - public void setLabelMap(Map labelMap) { + public void setLabelMap(Map> labelMap) { this.labelMap = labelMap; } @@ -144,10 +140,6 @@ public class LabelBasedAclVoter extends AbstractAclVoter { * This acl voter will only evaluate labeled methods if they are marked in the security interceptor's * configuration with the attribute stored in attributeIndicatingLabeledOperation. * - * @param attribute DOCUMENT ME! - * - * @return DOCUMENT ME! - * * @see org.springframework.security.vote.AbstractAclVoter * @see org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor */ @@ -166,8 +158,7 @@ public class LabelBasedAclVoter extends AbstractAclVoter { } /** - * Vote on whether or not the user has all the labels necessary to match the method argument's labeled - * data. + * Vote on whether or not the user has all the labels necessary to match the method argument's labeled data. * * @return ACCESS_ABSTAIN, ACCESS_GRANTED, or ACCESS_DENIED. */ @@ -178,13 +169,13 @@ public class LabelBasedAclVoter extends AbstractAclVoter { logger.debug("=========================================================="); } - if (this.supports((ConfigAttribute) attributes.iterator().next())) { + if (this.supports(attributes.iterator().next())) { result = ACCESS_DENIED; /* Parse out the user's labels by examining the security context, and checking * for matches against the label map. */ - List userLabels = new Vector(); + List userLabels = new ArrayList(); for (int i = 0; i < authentication.getAuthorities().size(); i++) { String userLabel = authentication.getAuthorities().get(i).getAuthority(); @@ -211,19 +202,15 @@ public class LabelBasedAclVoter extends AbstractAclVoter { logger.debug("Argument[" + j + "/" + invocation.getArguments()[j].getClass().getName() + "] has a data label of " + argumentDataLabel); - List validDataLabels = new Vector(); + List validDataLabels = new ArrayList(); for (int i = 0; i < userLabels.size(); i++) { - validDataLabels.addAll((List) labelMap.get(userLabels.get(i))); + validDataLabels.addAll(labelMap.get(userLabels.get(i))); } logger.debug("The valid labels for user label " + userLabels + " are " + validDataLabels); - Iterator dataLabelIter = validDataLabels.iterator(); - - while (dataLabelIter.hasNext()) { - String validDataLabel = (String) dataLabelIter.next(); - + for (String validDataLabel : validDataLabels) { if (argumentDataLabel.equals(validDataLabel)) { logger.debug(userLabels + " maps to " + validDataLabel + " which matches the argument"); matched = true; diff --git a/core/src/main/java/org/springframework/security/vote/RoleVoter.java b/core/src/main/java/org/springframework/security/vote/RoleVoter.java index 5d875cf3c7..2af79dd4d6 100644 --- a/core/src/main/java/org/springframework/security/vote/RoleVoter.java +++ b/core/src/main/java/org/springframework/security/vote/RoleVoter.java @@ -15,7 +15,6 @@ package org.springframework.security.vote; -import java.util.Iterator; import java.util.List; import org.springframework.security.Authentication; diff --git a/core/src/main/resources/org/springframework/security/config/spring-security.xsl b/core/src/main/resources/org/springframework/security/config/spring-security.xsl index 41edabfae5..90759153a8 100644 --- a/core/src/main/resources/org/springframework/security/config/spring-security.xsl +++ b/core/src/main/resources/org/springframework/security/config/spring-security.xsl @@ -3,7 +3,7 @@ @@ -20,19 +20,19 @@ - + - + - + - + @@ -42,5 +42,5 @@ - - \ No newline at end of file + + diff --git a/core/src/test/java/org/springframework/security/GrantedAuthorityImplTests.java b/core/src/test/java/org/springframework/security/GrantedAuthorityImplTests.java index 31e45f38f8..f63f1a0e37 100644 --- a/core/src/test/java/org/springframework/security/GrantedAuthorityImplTests.java +++ b/core/src/test/java/org/springframework/security/GrantedAuthorityImplTests.java @@ -27,7 +27,7 @@ import org.junit.Test; * @version $Id$ */ public class GrantedAuthorityImplTests { - + @Test public void equalsBehavesAsExpected() throws Exception { GrantedAuthorityImpl auth1 = new GrantedAuthorityImpl("TEST"); @@ -62,32 +62,32 @@ public class GrantedAuthorityImplTests { @Test public void compareToGrantedAuthorityWithSameValueReturns0() { assertEquals(0, new GrantedAuthorityImpl("TEST").compareTo(new MockGrantedAuthority("TEST"))); - } + } @Test public void compareToNullReturnsNegativeOne() { assertEquals(-1, new GrantedAuthorityImpl("TEST").compareTo(null)); - } - + } + /* SEC-899 */ @Test public void compareToHandlesCustomAuthorityWhichReturnsNullFromGetAuthority() { assertEquals(-1, new GrantedAuthorityImpl("TEST").compareTo(new MockGrantedAuthority())); - } - + } + //~ Inner Classes ================================================================================================== private class MockGrantedAuthority implements GrantedAuthority { private String role; public MockGrantedAuthority() { - } - + } + public MockGrantedAuthority(String role) { this.role = role; } - public int compareTo(Object o) { + public int compareTo(GrantedAuthority o) { throw new UnsupportedOperationException(); } diff --git a/core/src/test/java/org/springframework/security/vote/LabelBasedAclVoterTests.java b/core/src/test/java/org/springframework/security/vote/LabelBasedAclVoterTests.java index 9c017f0a96..00a0b70666 100644 --- a/core/src/test/java/org/springframework/security/vote/LabelBasedAclVoterTests.java +++ b/core/src/test/java/org/springframework/security/vote/LabelBasedAclVoterTests.java @@ -15,34 +15,37 @@ package org.springframework.security.vote; +import static org.junit.Assert.*; + +import java.util.List; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.AccessDeniedException; import org.springframework.security.AuthenticationManager; - import org.springframework.security.context.SecurityContextHolder; - import org.springframework.security.providers.UsernamePasswordAuthenticationToken; - -import org.springframework.test.AbstractDependencyInjectionSpringContextTests; - -import java.util.List; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** - * - * * @author Greg Turnquist * @version $Id$ */ -public class LabelBasedAclVoterTests extends AbstractDependencyInjectionSpringContextTests { +@ContextConfiguration(locations={"/org/springframework/security/vote/labelBasedSecurityApplicationContext.xml"}) +@RunWith(SpringJUnit4ClassRunner.class) +public class LabelBasedAclVoterTests { //~ Instance fields ================================================================================================ + @Autowired private SampleService sampleService = null; - //~ Methods ======================================================================================================== + @Autowired + private AuthenticationManager authenticationManager; - protected String[] getConfigLocations() { - return new String[] {"org/springframework/security/vote/labelBasedSecurityApplicationContext.xml"}; - } + //~ Methods ======================================================================================================== public SampleService getSampleService() { return sampleService; @@ -54,11 +57,10 @@ public class LabelBasedAclVoterTests extends AbstractDependencyInjectionSpringCo private void setupContext(String username, String password) { UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password); - AuthenticationManager authenticationManager = (AuthenticationManager) applicationContext.getBean( - "authenticationManager"); SecurityContextHolder.getContext().setAuthentication(authenticationManager.authenticate(token)); } + @Test public void testDoingSomethingForBlueUser() { setupContext("blueuser", "password"); @@ -98,6 +100,7 @@ public class LabelBasedAclVoterTests extends AbstractDependencyInjectionSpringCo sampleService.doSomethingOnThis(block3, block3); } + @Test public void testDoingSomethingForMultiUser() { setupContext("multiuser", "password4"); @@ -115,6 +118,7 @@ public class LabelBasedAclVoterTests extends AbstractDependencyInjectionSpringCo sampleService.doSomethingOnThis(block3, block3); } + @Test public void testDoingSomethingForOrangeUser() { setupContext("orangeuser", "password3"); @@ -154,6 +158,7 @@ public class LabelBasedAclVoterTests extends AbstractDependencyInjectionSpringCo sampleService.doSomethingOnThis(block3, block3); } + @Test public void testDoingSomethingForSuperUser() { setupContext("superuser", "password2"); @@ -171,6 +176,7 @@ public class LabelBasedAclVoterTests extends AbstractDependencyInjectionSpringCo sampleService.doSomethingOnThis(block3, block3); } + @Test public void testSampleBlockOfDataPOJO() { SampleBlockOfData block = new SampleBlockOfData(); block.setId("ID-ABC"); diff --git a/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java b/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java index 779a3d34c3..f130d658e1 100755 --- a/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java +++ b/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java @@ -5,7 +5,7 @@ import org.springframework.security.userdetails.UserDetails; import org.springframework.security.userdetails.UserDetailsService; import org.springframework.transaction.annotation.Transactional; -public class UserDetailsServiceImpl implements UserDetailsService{ +public class UserDetailsServiceImpl implements UserDetailsService { private UserRepository userRepository; diff --git a/itest/context/src/test/java/org/springframework/security/performance/FilterChainPerformanceTests.java b/itest/context/src/test/java/org/springframework/security/performance/FilterChainPerformanceTests.java index 266b6800bb..24833cdae7 100644 --- a/itest/context/src/test/java/org/springframework/security/performance/FilterChainPerformanceTests.java +++ b/itest/context/src/test/java/org/springframework/security/performance/FilterChainPerformanceTests.java @@ -1,11 +1,8 @@ package org.springframework.security.performance; -import static org.junit.Assert.*; - -import java.io.IOException; +import java.util.Arrays; import java.util.List; -import javax.servlet.ServletException; import javax.servlet.http.HttpSession; import org.junit.After; @@ -19,7 +16,6 @@ import org.springframework.mock.web.MockFilterChain; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockHttpSession; -import org.springframework.security.Authentication; import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthorityImpl; import org.springframework.security.context.HttpSessionSecurityContextRepository; @@ -30,8 +26,6 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.util.StopWatch; -import edu.emory.mathcs.backport.java.util.Arrays; - /** * * @author Luke Taylor diff --git a/samples/contacts/src/main/java/sample/contact/AddPermissionController.java b/samples/contacts/src/main/java/sample/contact/AddPermissionController.java index 1e63c4d61a..af0f89c992 100644 --- a/samples/contacts/src/main/java/sample/contact/AddPermissionController.java +++ b/samples/contacts/src/main/java/sample/contact/AddPermissionController.java @@ -14,31 +14,25 @@ */ package sample.contact; -import org.springframework.security.acls.Permission; -import org.springframework.security.acls.domain.BasePermission; -import org.springframework.security.acls.sid.PrincipalSid; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; -import org.springframework.beans.factory.InitializingBean; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.InitializingBean; import org.springframework.dao.DataAccessException; - +import org.springframework.security.acls.Permission; +import org.springframework.security.acls.domain.BasePermission; +import org.springframework.security.acls.sid.PrincipalSid; import org.springframework.util.Assert; - import org.springframework.validation.BindException; - import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; import org.springframework.web.servlet.view.RedirectView; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - /** * Controller for adding an ACL permission. diff --git a/samples/contacts/src/main/java/sample/contact/AdminPermissionController.java b/samples/contacts/src/main/java/sample/contact/AdminPermissionController.java index 104e80589a..16ff9d7da9 100644 --- a/samples/contacts/src/main/java/sample/contact/AdminPermissionController.java +++ b/samples/contacts/src/main/java/sample/contact/AdminPermissionController.java @@ -14,20 +14,7 @@ */ package sample.contact; -import org.springframework.security.acls.Acl; -import org.springframework.security.acls.AclService; -import org.springframework.security.acls.objectidentity.ObjectIdentityImpl; - -import org.springframework.beans.factory.InitializingBean; - -import org.springframework.util.Assert; - -import org.springframework.web.bind.ServletRequestUtils; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.Controller; - import java.io.IOException; - import java.util.HashMap; import java.util.Map; @@ -35,6 +22,15 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.security.acls.Acl; +import org.springframework.security.acls.AclService; +import org.springframework.security.acls.objectidentity.ObjectIdentityImpl; +import org.springframework.util.Assert; +import org.springframework.web.bind.ServletRequestUtils; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.Controller; + /** * Controller for "administer" index page. @@ -62,7 +58,7 @@ public class AdminPermissionController implements Controller, InitializingBean { Contact contact = contactManager.getById(new Long(id)); Acl acl = aclService.readAclById(new ObjectIdentityImpl(contact)); - Map model = new HashMap(); + Map model = new HashMap(2); model.put("contact", contact); model.put("acl", acl); diff --git a/samples/contacts/src/main/java/sample/contact/DataSourcePopulator.java b/samples/contacts/src/main/java/sample/contact/DataSourcePopulator.java index b50f8230f2..85e9e7c438 100644 --- a/samples/contacts/src/main/java/sample/contact/DataSourcePopulator.java +++ b/samples/contacts/src/main/java/sample/contact/DataSourcePopulator.java @@ -14,10 +14,13 @@ */ package sample.contact; -import org.springframework.security.Authentication; -import org.springframework.security.GrantedAuthority; -import org.springframework.security.GrantedAuthorityImpl; +import java.util.Random; +import javax.sql.DataSource; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.security.Authentication; import org.springframework.security.acls.MutableAcl; import org.springframework.security.acls.MutableAclService; import org.springframework.security.acls.Permission; @@ -26,26 +29,15 @@ import org.springframework.security.acls.domain.BasePermission; import org.springframework.security.acls.objectidentity.ObjectIdentity; import org.springframework.security.acls.objectidentity.ObjectIdentityImpl; import org.springframework.security.acls.sid.PrincipalSid; - import org.springframework.security.context.SecurityContextHolder; - import org.springframework.security.providers.UsernamePasswordAuthenticationToken; - -import org.springframework.beans.factory.InitializingBean; - -import org.springframework.jdbc.core.JdbcTemplate; - +import org.springframework.security.util.AuthorityUtils; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.TransactionCallback; import org.springframework.transaction.support.TransactionTemplate; - import org.springframework.util.Assert; -import java.util.Random; - -import javax.sql.DataSource; - /** * Populates the Contacts in-memory database with contact and ACL information. @@ -81,7 +73,7 @@ public class DataSourcePopulator implements InitializingBean { // Set a user account that will initially own all the created data Authentication authRequest = new UsernamePasswordAuthenticationToken("rod", "koala", - new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_IGNORED")}); + AuthorityUtils.createAuthorityList("ROLE_IGNORED")); SecurityContextHolder.getContext().setAuthentication(authRequest); template.execute( @@ -173,7 +165,7 @@ public class DataSourcePopulator implements InitializingBean { final ObjectIdentity objectIdentity = new ObjectIdentityImpl(Contact.class, new Long(i)); tt.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus arg0) { - MutableAcl acl = mutableAclService.createAcl(objectIdentity); + mutableAclService.createAcl(objectIdentity); return null; } diff --git a/samples/tutorial/src/main/java/bigbank/BankDaoStub.java b/samples/tutorial/src/main/java/bigbank/BankDaoStub.java index c675f95895..2c6a4ce51d 100644 --- a/samples/tutorial/src/main/java/bigbank/BankDaoStub.java +++ b/samples/tutorial/src/main/java/bigbank/BankDaoStub.java @@ -5,8 +5,8 @@ import java.util.Map; public class BankDaoStub implements BankDao { private long id = 0; - private Map accounts = new HashMap(); - + private Map accounts = new HashMap(); + public void createOrUpdateAccount(Account account) { if (account.getId() == -1) { id++; @@ -17,7 +17,7 @@ public class BankDaoStub implements BankDao { } public Account[] findAccounts() { - Account[] a = (Account[]) accounts.values().toArray(new Account[] {}); + Account[] a = accounts.values().toArray(new Account[] {}); System.out.println("Returning " + a.length + " account(s):"); for (int i = 0; i < a.length; i++) { System.out.println(" > " + a[i]); @@ -26,7 +26,7 @@ public class BankDaoStub implements BankDao { } public Account readAccount(Long id) { - return (Account) accounts.get(id); + return accounts.get(id); } } diff --git a/samples/tutorial/src/main/java/bigbank/web/PostAccounts.java b/samples/tutorial/src/main/java/bigbank/web/PostAccounts.java index 24abea31f1..8caa9066d8 100644 --- a/samples/tutorial/src/main/java/bigbank/web/PostAccounts.java +++ b/samples/tutorial/src/main/java/bigbank/web/PostAccounts.java @@ -3,7 +3,6 @@ package bigbank.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.springframework.security.AccessDeniedException; import org.springframework.util.Assert; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; @@ -15,7 +14,7 @@ import bigbank.BankService; public class PostAccounts implements Controller { private BankService bankService; - + public PostAccounts(BankService bankService) { Assert.notNull(bankService); this.bankService = bankService; @@ -24,15 +23,15 @@ public class PostAccounts implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { // Security check (this is unnecessary if Spring Security is performing the authorization) // if (!request.isUserInRole("ROLE_TELLER")) { -// throw new AccessDeniedException("You must be a teller to post transactions (Spring Security message)"); // only for Spring Security managed authentication +// throw new AccessDeniedException("You must be a teller to post transactions (Spring Security message)"); // } - + // Actual business logic Long id = ServletRequestUtils.getRequiredLongParameter(request, "id"); Double amount = ServletRequestUtils.getRequiredDoubleParameter(request, "amount"); Account a = bankService.readAccount(id); bankService.post(a, amount); - + return new ModelAndView("redirect:listAccounts.html"); } diff --git a/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagCustomGrantedAuthorityTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagCustomGrantedAuthorityTests.java index 168ee33db7..9066111fb7 100644 --- a/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagCustomGrantedAuthorityTests.java +++ b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagCustomGrantedAuthorityTests.java @@ -79,7 +79,7 @@ public class AuthorizeTagCustomGrantedAuthorityTests extends TestCase { private static class CustomGrantedAuthority implements GrantedAuthority { private final String authority; - public int compareTo(Object o) { + public int compareTo(GrantedAuthority o) { return 0; } diff --git a/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java index d8f32eeabc..678568f6d0 100644 --- a/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java +++ b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java @@ -16,7 +16,6 @@ package org.springframework.security.taglibs.authz; import javax.servlet.jsp.JspException; -import javax.servlet.jsp.el.ExpressionEvaluator; import javax.servlet.jsp.el.VariableResolver; import javax.servlet.jsp.tagext.Tag;