Browse Source

Remove getters and setters from JdbcDaoImpl so IoC container cannot modify MappingSqlQuerys (thanks to David Durham for bug report).

Ben Alex 20 năm trước cách đây
mục cha
commit
c0f1d4e19d

+ 3 - 21
core/src/main/java/org/acegisecurity/userdetails/jdbc/JdbcDaoImpl.java

@@ -1,4 +1,4 @@
-/* Copyright 2004 Acegi Technology Pty Limited
+/* Copyright 2004, 2005 Acegi Technology Pty Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -95,15 +95,6 @@ public class JdbcDaoImpl extends JdbcDaoSupport implements AuthenticationDao {
 
     //~ Methods ================================================================
 
-    public void setAuthoritiesByUsernameMapping(
-        MappingSqlQuery authoritiesByUsernameQuery) {
-        this.authoritiesByUsernameMapping = authoritiesByUsernameQuery;
-    }
-
-    public MappingSqlQuery getAuthoritiesByUsernameMapping() {
-        return authoritiesByUsernameMapping;
-    }
-
     /**
      * Allows the default query string used to retrieve authorities based on
      * username to be overriden, if default table or column names need to be
@@ -162,14 +153,6 @@ public class JdbcDaoImpl extends JdbcDaoSupport implements AuthenticationDao {
         return usernameBasedPrimaryKey;
     }
 
-    public void setUsersByUsernameMapping(MappingSqlQuery usersByUsernameQuery) {
-        this.usersByUsernameMapping = usersByUsernameQuery;
-    }
-
-    public MappingSqlQuery getUsersByUsernameMapping() {
-        return usersByUsernameMapping;
-    }
-
     /**
      * Allows the default query string used to retrieve users based on username
      * to be overriden, if default table or column names need to be changed.
@@ -243,9 +226,8 @@ public class JdbcDaoImpl extends JdbcDaoSupport implements AuthenticationDao {
      * in a subclass
      */
     protected void initMappingSqlQueries() {
-        setUsersByUsernameMapping(new UsersByUsernameMapping(getDataSource()));
-        setAuthoritiesByUsernameMapping(new AuthoritiesByUsernameMapping(
-                getDataSource()));
+        this.usersByUsernameMapping = new UsersByUsernameMapping(getDataSource());
+        this.authoritiesByUsernameMapping = new AuthoritiesByUsernameMapping(getDataSource());
     }
 
     //~ Inner Classes ==========================================================

+ 0 - 6
core/src/test/java/org/acegisecurity/providers/dao/jdbc/JdbcDaoTests.java

@@ -87,12 +87,6 @@ public class JdbcDaoTests extends TestCase {
 
         dao.setUsersByUsernameQuery("SELECT USERS FROM FOO");
         assertEquals("SELECT USERS FROM FOO", dao.getUsersByUsernameQuery());
-
-        dao.setAuthoritiesByUsernameMapping(new MockMappingSqlQuery());
-        assertTrue(dao.getAuthoritiesByUsernameMapping() != null);
-
-        dao.setUsersByUsernameMapping(new MockMappingSqlQuery());
-        assertTrue(dao.getUsersByUsernameMapping() != null);
     }
 
     public void testLookupFailsIfUserHasNoGrantedAuthorities()

+ 1 - 0
doc/xdocs/changes.xml

@@ -39,6 +39,7 @@
       <action dev="benalex" type="fix">Correct synchronization issue with FilterToBeanProxy initialization</action>
       <action dev="benalex" type="update">Refactor Authentication.isAuthenticated() handling to be more performance</action>
       <action dev="benalex" type="fix">Silently catch NotSerializableException in AbstractProcessingFilter if rootCause is not Serializable</action>
+      <action dev="benalex" type="fix">Remove getters and setters from JdbcDaoImpl so IoC container cannot modify MappingSqlQuerys</action>
     </release>
     <release version="0.8.2" date="2005-04-20">
       <action dev="benalex" type="fix">Correct location of AuthenticationSimpleHttpInvokerRequestExecutor in clientContext.xml</action>