This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push: new e96edf2 GenericPrincipal API cleanup e96edf2 is described below commit e96edf229eb78df2be55e16e5c7f277501a71181 Author: remm <r...@apache.org> AuthorDate: Mon Jan 13 17:51:33 2020 +0100 GenericPrincipal API cleanup Leave deprecated constructors to allow easier branch compatibility, but actually remove everything. I hesitated on leaving them, but it's likely too hard to write a realm compatible with both 9 and 10 otherwise. Cleanup all the code using the new constructors. Verified everything uses RealmBase.getPassword. --- .../authenticator/jaspic/CallbackHandlerImpl.java | 2 +- .../org/apache/catalina/realm/DataSourceRealm.java | 5 +- .../apache/catalina/realm/GenericPrincipal.java | 62 ++++++++++++---------- java/org/apache/catalina/realm/JAASRealm.java | 2 +- java/org/apache/catalina/realm/JDBCRealm.java | 6 +-- java/org/apache/catalina/realm/JNDIRealm.java | 6 +-- java/org/apache/catalina/realm/MemoryRealm.java | 3 +- .../apache/catalina/realm/UserDatabaseRealm.java | 2 +- java/org/apache/catalina/startup/Tomcat.java | 2 +- test/org/apache/catalina/realm/TestRealmBase.java | 8 +-- .../apache/catalina/startup/TesterMapRealm.java | 2 +- 11 files changed, 51 insertions(+), 49 deletions(-) diff --git a/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java b/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java index a43a3a5..dc539c7 100644 --- a/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java +++ b/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java @@ -117,6 +117,6 @@ public class CallbackHandlerImpl implements CallbackHandler { roles = Arrays.asList(groups); } - return new GenericPrincipal(name, null, roles, principal); + return new GenericPrincipal(name, roles, principal); } } diff --git a/java/org/apache/catalina/realm/DataSourceRealm.java b/java/org/apache/catalina/realm/DataSourceRealm.java index c638967..9e1c1f7 100644 --- a/java/org/apache/catalina/realm/DataSourceRealm.java +++ b/java/org/apache/catalina/realm/DataSourceRealm.java @@ -334,7 +334,7 @@ public class DataSourceRealm extends RealmBase { ArrayList<String> list = getRoles(dbConnection, username); // Create and return a suitable Principal for this user - return new GenericPrincipal(username, credentials, list); + return new GenericPrincipal(username, list); } @@ -455,11 +455,10 @@ public class DataSourceRealm extends RealmBase { protected Principal getPrincipal(String username) { Connection dbConnection = open(); if (dbConnection == null) { - return new GenericPrincipal(username, null, null); + return new GenericPrincipal(username, null); } try { return new GenericPrincipal(username, - getPassword(dbConnection, username), getRoles(dbConnection, username)); } finally { close(dbConnection); diff --git a/java/org/apache/catalina/realm/GenericPrincipal.java b/java/org/apache/catalina/realm/GenericPrincipal.java index 1511b2d..26d4ef6 100644 --- a/java/org/apache/catalina/realm/GenericPrincipal.java +++ b/java/org/apache/catalina/realm/GenericPrincipal.java @@ -41,58 +41,67 @@ public class GenericPrincipal implements TomcatPrincipal, Serializable { /** * Construct a new Principal, associated with the specified Realm, for the - * specified username and password, with the specified role names - * (as Strings). + * specified username, with the specified role names (as Strings). * * @param name The username of the user represented by this Principal - * @param password Credentials used to authenticate this user * @param roles List of roles (must be Strings) possessed by this user */ + public GenericPrincipal(String name, List<String> roles) { + this(name, roles, null); + } + + @Deprecated public GenericPrincipal(String name, String password, List<String> roles) { - this(name, password, roles, null); + this(name, roles, null); } /** * Construct a new Principal, associated with the specified Realm, for the - * specified username and password, with the specified role names - * (as Strings). + * specified username, with the specified role names (as Strings). * * @param name The username of the user represented by this Principal - * @param password Credentials used to authenticate this user * @param roles List of roles (must be Strings) possessed by this user * @param userPrincipal - the principal to be returned from the request * getUserPrincipal call if not null; if null, this will be returned */ + public GenericPrincipal(String name, List<String> roles, + Principal userPrincipal) { + this(name, roles, userPrincipal, null); + } + + @Deprecated public GenericPrincipal(String name, String password, List<String> roles, Principal userPrincipal) { - this(name, password, roles, userPrincipal, null); + this(name, roles, userPrincipal, null); } /** * Construct a new Principal, associated with the specified Realm, for the - * specified username and password, with the specified role names - * (as Strings). + * specified username, with the specified role names (as Strings). * * @param name The username of the user represented by this Principal - * @param password Credentials used to authenticate this user * @param roles List of roles (must be Strings) possessed by this user * @param userPrincipal - the principal to be returned from the request * getUserPrincipal call if not null; if null, this will be returned * @param loginContext - If provided, this will be used to log out the user * at the appropriate time */ + public GenericPrincipal(String name, List<String> roles, + Principal userPrincipal, LoginContext loginContext) { + this(name, roles, userPrincipal, loginContext, null); + } + + @Deprecated public GenericPrincipal(String name, String password, List<String> roles, Principal userPrincipal, LoginContext loginContext) { - this(name, password, roles, userPrincipal, loginContext, null); + this(name, roles, userPrincipal, loginContext, null); } /** * Construct a new Principal, associated with the specified Realm, for the - * specified username and password, with the specified role names - * (as Strings). + * specified username, with the specified role names (as Strings). * * @param name The username of the user represented by this Principal - * @param password Credentials used to authenticate this user * @param roles List of roles (must be Strings) possessed by this user * @param userPrincipal - the principal to be returned from the request * getUserPrincipal call if not null; if null, this will be returned @@ -100,7 +109,7 @@ public class GenericPrincipal implements TomcatPrincipal, Serializable { * at the appropriate time * @param gssCredential - If provided, the user's delegated credentials */ - public GenericPrincipal(String name, String password, List<String> roles, + public GenericPrincipal(String name, List<String> roles, Principal userPrincipal, LoginContext loginContext, GSSCredential gssCredential) { super(); @@ -119,6 +128,14 @@ public class GenericPrincipal implements TomcatPrincipal, Serializable { } + @Deprecated + public GenericPrincipal(String name, String password, List<String> roles, + Principal userPrincipal, LoginContext loginContext, + GSSCredential gssCredential) { + this(name, roles, userPrincipal, loginContext, gssCredential); + } + + // -------------------------------------------------------------- Properties /** @@ -132,17 +149,6 @@ public class GenericPrincipal implements TomcatPrincipal, Serializable { } /** - * @deprecated Will be removed in Tomcat 10, the password should be accessed - * using RealmBase.getPassword - * @return null - */ - @Deprecated - public String getPassword() { - return null; - } - - - /** * The set of roles associated with this user. */ protected final String[] roles; @@ -262,7 +268,7 @@ public class GenericPrincipal implements TomcatPrincipal, Serializable { } private Object readResolve() { - return new GenericPrincipal(name, null, Arrays.asList(roles), principal); + return new GenericPrincipal(name, Arrays.asList(roles), principal); } } } diff --git a/java/org/apache/catalina/realm/JAASRealm.java b/java/org/apache/catalina/realm/JAASRealm.java index 26dead7..1d6d79f 100644 --- a/java/org/apache/catalina/realm/JAASRealm.java +++ b/java/org/apache/catalina/realm/JAASRealm.java @@ -573,7 +573,7 @@ public class JAASRealm extends RealmBase { } // Return the resulting Principal for our authenticated user - return new GenericPrincipal(username, null, roles, userPrincipal, + return new GenericPrincipal(username, roles, userPrincipal, loginContext); } diff --git a/java/org/apache/catalina/realm/JDBCRealm.java b/java/org/apache/catalina/realm/JDBCRealm.java index f27d9ac..3d7507c 100644 --- a/java/org/apache/catalina/realm/JDBCRealm.java +++ b/java/org/apache/catalina/realm/JDBCRealm.java @@ -404,7 +404,7 @@ public class JDBCRealm ArrayList<String> roles = getRoles(username); // Create and return a suitable Principal for this user - return new GenericPrincipal(username, credentials, roles); + return new GenericPrincipal(username, roles); } @@ -556,9 +556,7 @@ public class JDBCRealm @Override protected synchronized Principal getPrincipal(String username) { - return new GenericPrincipal(username, - getPassword(username), - getRoles(username)); + return new GenericPrincipal(username, getRoles(username)); } diff --git a/java/org/apache/catalina/realm/JNDIRealm.java b/java/org/apache/catalina/realm/JNDIRealm.java index 26c97f1..375edc7 100644 --- a/java/org/apache/catalina/realm/JNDIRealm.java +++ b/java/org/apache/catalina/realm/JNDIRealm.java @@ -1396,7 +1396,7 @@ public class JNDIRealm extends RealmBase { if (containerLog.isDebugEnabled()) { containerLog.debug("Found roles: " + roles.toString()); } - return new GenericPrincipal(username, credentials, roles); + return new GenericPrincipal(username, roles); } } catch (InvalidNameException ine) { // Log the problem for posterity @@ -1426,7 +1426,7 @@ public class JNDIRealm extends RealmBase { } // Create and return a suitable Principal for this user - return new GenericPrincipal(username, credentials, roles); + return new GenericPrincipal(username, roles); } } @@ -2368,7 +2368,7 @@ public class JNDIRealm extends RealmBase { } if (user != null) { - return new GenericPrincipal(user.getUserName(), user.getPassword(), + return new GenericPrincipal(user.getUserName(), roles, null, null, gssCredential); } diff --git a/java/org/apache/catalina/realm/MemoryRealm.java b/java/org/apache/catalina/realm/MemoryRealm.java index db51794..625e9ec 100644 --- a/java/org/apache/catalina/realm/MemoryRealm.java +++ b/java/org/apache/catalina/realm/MemoryRealm.java @@ -178,8 +178,7 @@ public class MemoryRealm extends RealmBase { } // Construct and cache the Principal for this user - GenericPrincipal principal = - new GenericPrincipal(username, password, list); + GenericPrincipal principal = new GenericPrincipal(username, list); principals.put(username, principal); credentials.put(username, password); diff --git a/java/org/apache/catalina/realm/UserDatabaseRealm.java b/java/org/apache/catalina/realm/UserDatabaseRealm.java index b001ded..f7901d5 100644 --- a/java/org/apache/catalina/realm/UserDatabaseRealm.java +++ b/java/org/apache/catalina/realm/UserDatabaseRealm.java @@ -185,7 +185,7 @@ public class UserDatabaseRealm extends RealmBase { roles.add(role.getName()); } } - return new GenericPrincipal(username, user.getPassword(), roles, + return new GenericPrincipal(username, roles, new UserDatabasePrincipal(username)); } diff --git a/java/org/apache/catalina/startup/Tomcat.java b/java/org/apache/catalina/startup/Tomcat.java index 757d896..15fdd67 100644 --- a/java/org/apache/catalina/startup/Tomcat.java +++ b/java/org/apache/catalina/startup/Tomcat.java @@ -818,7 +818,7 @@ public class Tomcat { if (p == null) { String pass = userPass.get(username); if (pass != null) { - p = new GenericPrincipal(username, pass, + p = new GenericPrincipal(username, userRoles.get(username)); userPrincipals.put(username, p); } diff --git a/test/org/apache/catalina/realm/TestRealmBase.java b/test/org/apache/catalina/realm/TestRealmBase.java index 27d3598..3d1fde0 100644 --- a/test/org/apache/catalina/realm/TestRealmBase.java +++ b/test/org/apache/catalina/realm/TestRealmBase.java @@ -625,7 +625,7 @@ public class TestRealmBase { // Set up an authenticated user // Configure the users in the Realm if (userRoles != null) { - GenericPrincipal gp = new GenericPrincipal(USER1, PWD, userRoles); + GenericPrincipal gp = new GenericPrincipal(USER1, userRoles); request.setUserPrincipal(gp); } @@ -676,14 +676,14 @@ public class TestRealmBase { // Create the principals List<String> userRoles1 = new ArrayList<>(); userRoles1.add(ROLE1); - GenericPrincipal gp1 = new GenericPrincipal(USER1, PWD, userRoles1); + GenericPrincipal gp1 = new GenericPrincipal(USER1, userRoles1); List<String> userRoles2 = new ArrayList<>(); userRoles2.add(ROLE2); - GenericPrincipal gp2 = new GenericPrincipal(USER2, PWD, userRoles2); + GenericPrincipal gp2 = new GenericPrincipal(USER2, userRoles2); List<String> userRoles99 = new ArrayList<>(); - GenericPrincipal gp99 = new GenericPrincipal(USER99, PWD, userRoles99); + GenericPrincipal gp99 = new GenericPrincipal(USER99, userRoles99); // Add the constraints to the context for (SecurityConstraint constraint : constraints) { diff --git a/test/org/apache/catalina/startup/TesterMapRealm.java b/test/org/apache/catalina/startup/TesterMapRealm.java index ccd2be3..3f5abc9 100644 --- a/test/org/apache/catalina/startup/TesterMapRealm.java +++ b/test/org/apache/catalina/startup/TesterMapRealm.java @@ -53,7 +53,7 @@ public final class TesterMapRealm extends RealmBase { @Override protected Principal getPrincipal(String username) { - return new GenericPrincipal(username, getPassword(username), + return new GenericPrincipal(username, roles.get(username)); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org