cklein05 commented on a change in pull request #428: URL: https://github.com/apache/tomcat/pull/428#discussion_r655188601
########## File path: java/org/apache/catalina/realm/DataSourceRealm.java ########## @@ -539,6 +612,162 @@ private boolean isRoleStoreDefined() { } + /** + * Return the specified user's requested user attributes as a map. + * + * @param dbConnection The database connection to be used + * @param username User name for which to return user attributes + * + * @return a map containing the specified user's requested user attributes + */ + protected Map<String, Object> getUserAttributesMap(Connection dbConnection, String username) { + + String preparedAttributes = getUserAttributesStatement(dbConnection); + if (preparedAttributes == null || preparedAttributes == USER_ATTRIBUTES_NONE_REQUESTED) { Review comment: With DataSourceRealm, parsing and validating is done lazily, so `null` means _still uninitialized_. When not using a value different from `null` for _empty/none required_, I end with constantly parsing and validating in method `getUserAttributesStatement`. I could have uses another boolean `userAttributesNoneRequested`, however I like that _3-state value approach_ some more. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org