Browse Source

class location refactoring

Jason Rivard 3 years ago
parent
commit
b2c5c0f498
100 changed files with 146 additions and 266 deletions
  1. 1 1
      data-service/src/main/java/password/pwm/receiver/TelemetryRestReceiver.java
  2. 2 2
      lib-data/src/main/java/password/pwm/bean/PhotoDataBean.java
  3. 1 1
      lib-data/src/main/java/password/pwm/data/ImmutableByteArray.java
  4. 6 0
      lib-util/pom.xml
  5. 11 2
      lib-util/src/main/java/password/pwm/util/ProgressInfoCalculator.java
  6. 1 0
      lib-util/src/main/java/password/pwm/util/java/JavaHelper.java
  7. 1 1
      server/src/main/java/password/pwm/VerificationMethodSystem.java
  8. 1 1
      server/src/main/java/password/pwm/bean/LocalSessionStateBean.java
  9. 1 1
      server/src/main/java/password/pwm/bean/TokenDestinationItem.java
  10. 1 1
      server/src/main/java/password/pwm/config/stored/StoredConfigZipJsonSerializer.java
  11. 1 1
      server/src/main/java/password/pwm/config/value/AbstractValue.java
  12. 1 1
      server/src/main/java/password/pwm/config/value/FileValue.java
  13. 1 1
      server/src/main/java/password/pwm/health/LDAPHealthChecker.java
  14. 1 1
      server/src/main/java/password/pwm/http/IdleTimeoutCalculator.java
  15. 0 1
      server/src/main/java/password/pwm/http/PwmHttpRequestWrapper.java
  16. 2 2
      server/src/main/java/password/pwm/http/PwmRequest.java
  17. 2 2
      server/src/main/java/password/pwm/http/PwmSession.java
  18. 1 1
      server/src/main/java/password/pwm/http/ServletUtility.java
  19. 1 1
      server/src/main/java/password/pwm/http/SessionManager.java
  20. 1 1
      server/src/main/java/password/pwm/http/filter/AuthenticationFilter.java
  21. 1 1
      server/src/main/java/password/pwm/http/servlet/ForgottenUsernameServlet.java
  22. 1 1
      server/src/main/java/password/pwm/http/servlet/GuestRegistrationServlet.java
  23. 1 1
      server/src/main/java/password/pwm/http/servlet/accountinfo/AccountInformationBean.java
  24. 1 1
      server/src/main/java/password/pwm/http/servlet/activation/ActivateUserServlet.java
  25. 1 1
      server/src/main/java/password/pwm/http/servlet/activation/ActivateUserUtils.java
  26. 1 1
      server/src/main/java/password/pwm/http/servlet/admin/UserDebugDataBean.java
  27. 2 2
      server/src/main/java/password/pwm/http/servlet/admin/UserDebugDataReader.java
  28. 1 1
      server/src/main/java/password/pwm/http/servlet/changepw/ChangePasswordServlet.java
  29. 1 1
      server/src/main/java/password/pwm/http/servlet/changepw/ChangePasswordServletUtil.java
  30. 2 2
      server/src/main/java/password/pwm/http/servlet/configguide/ConfigGuideUtils.java
  31. 4 4
      server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerServlet.java
  32. 1 1
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordServlet.java
  33. 1 1
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordStageProcessor.java
  34. 1 1
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordStateMachine.java
  35. 1 1
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordUtil.java
  36. 2 2
      server/src/main/java/password/pwm/http/servlet/forgottenpw/RemoteVerificationMethod.java
  37. 1 1
      server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskCardInfoBean.java
  38. 1 1
      server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskDetailInfoBean.java
  39. 2 2
      server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskServlet.java
  40. 1 1
      server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskServletUtil.java
  41. 1 1
      server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskVerificationOptionsBean.java
  42. 1 1
      server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskVerificationStateBean.java
  43. 2 2
      server/src/main/java/password/pwm/http/servlet/newuser/NewUserServlet.java
  44. 2 2
      server/src/main/java/password/pwm/http/servlet/newuser/NewUserUtils.java
  45. 2 2
      server/src/main/java/password/pwm/http/servlet/peoplesearch/PeopleSearchDataReader.java
  46. 1 1
      server/src/main/java/password/pwm/http/servlet/peoplesearch/PeopleSearchServlet.java
  47. 2 2
      server/src/main/java/password/pwm/http/servlet/peoplesearch/PhotoDataReader.java
  48. 1 1
      server/src/main/java/password/pwm/http/servlet/resource/CacheEntry.java
  49. 1 1
      server/src/main/java/password/pwm/http/servlet/resource/MemoryFileResource.java
  50. 1 1
      server/src/main/java/password/pwm/http/servlet/resource/ResourceFileServlet.java
  51. 1 1
      server/src/main/java/password/pwm/http/servlet/resource/ResourceServletConfiguration.java
  52. 1 1
      server/src/main/java/password/pwm/http/servlet/setupresponses/SetupResponsesServlet.java
  53. 1 1
      server/src/main/java/password/pwm/http/servlet/updateprofile/UpdateProfileServlet.java
  54. 1 1
      server/src/main/java/password/pwm/http/servlet/updateprofile/UpdateProfileUtil.java
  55. 1 1
      server/src/main/java/password/pwm/http/tag/conditional/PwmIfTest.java
  56. 2 1
      server/src/main/java/password/pwm/ldap/LdapOperationsHelper.java
  57. 4 4
      server/src/main/java/password/pwm/ldap/LdapPermissionCalculator.java
  58. 5 4
      server/src/main/java/password/pwm/ldap/LdapUserInfoReader.java
  59. 3 3
      server/src/main/java/password/pwm/ldap/PasswordChangeProgressChecker.java
  60. 2 1
      server/src/main/java/password/pwm/ldap/UserInfoFactory.java
  61. 1 0
      server/src/main/java/password/pwm/ldap/ViewableUserInfoDisplayReader.java
  62. 1 1
      server/src/main/java/password/pwm/ldap/auth/SessionAuthenticator.java
  63. 1 1
      server/src/main/java/password/pwm/svc/db/DBConfiguration.java
  64. 1 1
      server/src/main/java/password/pwm/svc/db/JDBCDriverLoader.java
  65. 1 1
      server/src/main/java/password/pwm/svc/email/EmailService.java
  66. 1 1
      server/src/main/java/password/pwm/svc/event/AuditRecordFactory.java
  67. 1 1
      server/src/main/java/password/pwm/svc/event/AuditServiceClient.java
  68. 1 1
      server/src/main/java/password/pwm/svc/httpclient/ApachePwmHttpClient.java
  69. 1 1
      server/src/main/java/password/pwm/svc/httpclient/JavaPwmHttpClient.java
  70. 1 1
      server/src/main/java/password/pwm/svc/httpclient/PwmHttpClientMessage.java
  71. 1 1
      server/src/main/java/password/pwm/svc/httpclient/PwmHttpClientRequest.java
  72. 1 1
      server/src/main/java/password/pwm/svc/httpclient/PwmHttpClientResponse.java
  73. 1 1
      server/src/main/java/password/pwm/svc/intruder/IntruderDomainService.java
  74. 1 1
      server/src/main/java/password/pwm/svc/pwnotify/PwNotifyEngine.java
  75. 1 1
      server/src/main/java/password/pwm/svc/report/ReportRecordLocalDBStorageService.java
  76. 1 1
      server/src/main/java/password/pwm/svc/report/ReportService.java
  77. 1 1
      server/src/main/java/password/pwm/svc/report/UserReportRecord.java
  78. 1 1
      server/src/main/java/password/pwm/svc/sessiontrack/SessionTrackService.java
  79. 1 1
      server/src/main/java/password/pwm/svc/token/LdapTokenMachine.java
  80. 1 1
      server/src/main/java/password/pwm/svc/token/TokenService.java
  81. 1 1
      server/src/main/java/password/pwm/svc/token/TokenUtil.java
  82. 1 1
      server/src/main/java/password/pwm/svc/userhistory/DatabaseUserHistory.java
  83. 1 1
      server/src/main/java/password/pwm/svc/userhistory/LdapXmlUserHistory.java
  84. 1 1
      server/src/main/java/password/pwm/svc/userhistory/UserHistoryService.java
  85. 1 1
      server/src/main/java/password/pwm/svc/userhistory/UserHistoryStore.java
  86. 1 1
      server/src/main/java/password/pwm/user/UserInfo.java
  87. 2 2
      server/src/main/java/password/pwm/user/UserInfoBean.java
  88. 1 1
      server/src/main/java/password/pwm/util/PasswordData.java
  89. 2 2
      server/src/main/java/password/pwm/util/SampleDataGenerator.java
  90. 3 3
      server/src/main/java/password/pwm/util/debug/LDAPPermissionItemGenerator.java
  91. 1 1
      server/src/main/java/password/pwm/util/form/FormUtility.java
  92. 2 3
      server/src/main/java/password/pwm/util/java/CachingProxyWrapper.java
  93. 0 138
      server/src/main/java/password/pwm/util/java/Memorizer.java
  94. 3 3
      server/src/main/java/password/pwm/util/localdb/LocalDBUtility.java
  95. 2 2
      server/src/main/java/password/pwm/util/macro/ExternalRestMacro.java
  96. 1 1
      server/src/main/java/password/pwm/util/macro/MacroRequest.java
  97. 1 1
      server/src/main/java/password/pwm/util/macro/UserMacros.java
  98. 1 1
      server/src/main/java/password/pwm/util/password/PasswordRuleChecks.java
  99. 1 1
      server/src/main/java/password/pwm/util/password/PasswordUtility.java
  100. 1 1
      server/src/main/java/password/pwm/util/password/PwmPasswordAdRuleUtil.java

+ 1 - 1
data-service/src/main/java/password/pwm/receiver/TelemetryRestReceiver.java

@@ -26,7 +26,7 @@ import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmHttpRequestWrapper;
 import password.pwm.i18n.Message;
-import password.pwm.util.ServletUtility;
+import password.pwm.http.ServletUtility;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.ws.server.RestResultBean;
 

+ 2 - 2
server/src/main/java/password/pwm/ldap/PhotoDataBean.java → lib-data/src/main/java/password/pwm/bean/PhotoDataBean.java

@@ -18,10 +18,10 @@
  * limitations under the License.
  */
 
-package password.pwm.ldap;
+package password.pwm.bean;
 
 import lombok.Value;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 
 import java.io.Serializable;
 

+ 1 - 1
lib-util/src/main/java/password/pwm/util/java/ImmutableByteArray.java → lib-data/src/main/java/password/pwm/data/ImmutableByteArray.java

@@ -18,7 +18,7 @@
  * limitations under the License.
  */
 
-package password.pwm.util.java;
+package password.pwm.data;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;

+ 6 - 0
lib-util/pom.xml

@@ -89,6 +89,12 @@
     </build>
 
     <dependencies>
+        <dependency>
+            <groupId>org.pwm-project</groupId>
+            <artifactId>pwm-lib-data</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>

+ 11 - 2
server/src/main/java/password/pwm/util/ProgressInfo.java → lib-util/src/main/java/password/pwm/util/ProgressInfoCalculator.java

@@ -29,14 +29,14 @@ import java.math.MathContext;
 import java.text.NumberFormat;
 import java.time.Instant;
 
-public class ProgressInfo implements Serializable
+public class ProgressInfoCalculator implements Serializable
 {
     private final Instant startTime;
     private final Instant nowTime;
     private final long totalItems;
     private final long nowItems;
 
-    public ProgressInfo(
+    private ProgressInfoCalculator(
             final Instant startTime,
             final long totalItems,
             final long nowItems
@@ -48,6 +48,15 @@ public class ProgressInfo implements Serializable
         this.nowItems = nowItems;
     }
 
+    public static ProgressInfoCalculator createProgressInfo(
+            final Instant startTime,
+            final long totalItems,
+            final long nowItems
+    )
+    {
+        return new ProgressInfoCalculator( startTime, totalItems, nowItems );
+    }
+
     public Percent percentComplete( )
     {
         return Percent.of( nowItems, totalItems );

+ 1 - 0
lib-util/src/main/java/password/pwm/util/java/JavaHelper.java

@@ -21,6 +21,7 @@
 package password.pwm.util.java;
 
 import org.apache.commons.io.IOUtils;
+import password.pwm.data.ImmutableByteArray;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;

+ 1 - 1
server/src/main/java/password/pwm/VerificationMethodSystem.java

@@ -23,7 +23,7 @@ package password.pwm;
 import password.pwm.bean.SessionLabel;
 import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 
 import java.io.Serializable;
 import java.util.List;

+ 1 - 1
server/src/main/java/password/pwm/bean/LocalSessionStateBean.java

@@ -21,7 +21,7 @@
 package password.pwm.bean;
 
 import lombok.Data;
-import password.pwm.ldap.UserInfoBean;
+import password.pwm.user.UserInfoBean;
 import password.pwm.util.java.MovingAverage;
 import password.pwm.util.java.TimeDuration;
 

+ 1 - 1
server/src/main/java/password/pwm/bean/TokenDestinationItem.java

@@ -31,7 +31,7 @@ import password.pwm.config.option.MessageSendMethod;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.i18n.Display;
 import password.pwm.i18n.PwmDisplayBundle;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.token.TokenDestinationDisplayMasker;
 import password.pwm.util.i18n.LocaleHelper;
 import password.pwm.util.java.StringUtil;

+ 1 - 1
server/src/main/java/password/pwm/config/stored/StoredConfigZipJsonSerializer.java

@@ -27,7 +27,7 @@ import password.pwm.config.value.FileValue;
 import password.pwm.config.value.StoredValue;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.java.JavaHelper;
 import password.pwm.util.json.JsonProvider;

+ 1 - 1
server/src/main/java/password/pwm/config/value/AbstractValue.java

@@ -27,7 +27,7 @@ import password.pwm.PwmConstants;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.java.JavaHelper;
 import password.pwm.util.java.LazySupplier;
 import password.pwm.util.java.StringUtil;

+ 1 - 1
server/src/main/java/password/pwm/config/value/FileValue.java

@@ -30,7 +30,7 @@ import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.StoredConfigXmlConstants;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.java.LazySupplier;
 import password.pwm.util.java.StringUtil;
 import password.pwm.util.json.JsonFactory;

+ 1 - 1
server/src/main/java/password/pwm/health/LDAPHealthChecker.java

@@ -52,7 +52,7 @@ import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.search.SearchConfiguration;
 import password.pwm.util.PasswordData;

+ 1 - 1
server/src/main/java/password/pwm/http/IdleTimeoutCalculator.java

@@ -34,7 +34,7 @@ import password.pwm.config.profile.ProfileDefinition;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.servlet.PwmServletDefinition;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.util.java.StringUtil;
 import password.pwm.util.java.TimeDuration;
 import password.pwm.util.logging.PwmLogger;

+ 0 - 1
server/src/main/java/password/pwm/http/PwmHttpRequestWrapper.java

@@ -28,7 +28,6 @@ import password.pwm.config.AppConfig;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.util.PasswordData;
-import password.pwm.util.ServletUtility;
 import password.pwm.util.Validator;
 import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.java.JavaHelper;

+ 2 - 2
server/src/main/java/password/pwm/http/PwmRequest.java

@@ -54,9 +54,9 @@ import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.servlet.AbstractPwmServlet;
 import password.pwm.http.servlet.PwmRequestID;
 import password.pwm.http.servlet.PwmServletDefinition;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.util.Validator;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.java.JavaHelper;
 import password.pwm.util.java.LazySupplier;
 import password.pwm.util.java.StringUtil;

+ 2 - 2
server/src/main/java/password/pwm/http/PwmSession.java

@@ -35,8 +35,8 @@ import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.bean.UserSessionDataCacheBean;
-import password.pwm.ldap.UserInfo;
-import password.pwm.ldap.UserInfoBean;
+import password.pwm.user.UserInfo;
+import password.pwm.user.UserInfoBean;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.svc.stats.Statistic;

+ 1 - 1
server/src/main/java/password/pwm/util/ServletUtility.java → server/src/main/java/password/pwm/http/ServletUtility.java

@@ -18,7 +18,7 @@
  * limitations under the License.
  */
 
-package password.pwm.util;
+package password.pwm.http;
 
 import password.pwm.PwmConstants;
 import password.pwm.error.ErrorInformation;

+ 1 - 1
server/src/main/java/password/pwm/http/SessionManager.java

@@ -33,7 +33,7 @@ import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.ldap.permission.UserPermissionUtility;
 import password.pwm.util.PasswordData;

+ 1 - 1
server/src/main/java/password/pwm/http/filter/AuthenticationFilter.java

@@ -41,7 +41,7 @@ import password.pwm.http.servlet.oauth.OAuthMachine;
 import password.pwm.http.servlet.oauth.OAuthSettings;
 import password.pwm.i18n.Display;
 import password.pwm.ldap.PasswordChangeProgressChecker;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.util.BasicAuthInfo;
 import password.pwm.util.i18n.LocaleHelper;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/ForgottenUsernameServlet.java

@@ -39,7 +39,7 @@ import password.pwm.http.JspUrl;
 import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmRequestAttribute;
 import password.pwm.http.PwmSession;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.search.SearchConfiguration;
 import password.pwm.ldap.search.UserSearchEngine;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/GuestRegistrationServlet.java

@@ -48,7 +48,7 @@ import password.pwm.http.PwmSession;
 import password.pwm.http.bean.GuestRegistrationBean;
 import password.pwm.i18n.Message;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.search.SearchConfiguration;
 import password.pwm.ldap.search.UserSearchEngine;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/accountinfo/AccountInformationBean.java

@@ -33,7 +33,7 @@ import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequest;
 import password.pwm.http.bean.DisplayElement;
 import password.pwm.http.tag.PasswordRequirementsTag;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.ViewableUserInfoDisplayReader;
 import password.pwm.svc.event.UserAuditRecord;
 import password.pwm.util.form.FormUtility;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/activation/ActivateUserServlet.java

@@ -47,7 +47,7 @@ import password.pwm.http.bean.ActivateUserBean;
 import password.pwm.http.servlet.ControlledPwmServlet;
 import password.pwm.http.servlet.PwmServletDefinition;
 import password.pwm.i18n.Message;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.search.SearchConfiguration;
 import password.pwm.ldap.search.UserSearchEngine;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/activation/ActivateUserUtils.java

@@ -48,7 +48,7 @@ import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmRequestAttribute;
 import password.pwm.http.PwmSession;
 import password.pwm.http.bean.ActivateUserBean;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.ldap.auth.PwmAuthenticationSource;
 import password.pwm.ldap.auth.SessionAuthenticator;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/admin/UserDebugDataBean.java

@@ -26,7 +26,7 @@ import password.pwm.Permission;
 import password.pwm.bean.pub.PublicUserInfoBean;
 import password.pwm.config.profile.ProfileDefinition;
 import password.pwm.config.profile.PwmPasswordPolicy;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.pwnotify.PwNotifyUserStatus;
 
 import java.io.Serializable;

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/admin/UserDebugDataReader.java

@@ -32,9 +32,9 @@ import password.pwm.config.profile.PwmPasswordPolicy;
 import password.pwm.config.value.data.UserPermission;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfoBean;
+import password.pwm.user.UserInfoBean;
 import password.pwm.ldap.permission.UserPermissionUtility;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.svc.PwmService;
 import password.pwm.svc.pwnotify.PwNotifyUserStatus;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/changepw/ChangePasswordServlet.java

@@ -45,7 +45,7 @@ import password.pwm.http.bean.ChangePasswordBean;
 import password.pwm.http.servlet.ControlledPwmServlet;
 import password.pwm.i18n.Message;
 import password.pwm.ldap.PasswordChangeProgressChecker;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.svc.event.AuditEvent;
 import password.pwm.svc.event.AuditRecord;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/changepw/ChangePasswordServletUtil.java

@@ -42,7 +42,7 @@ import password.pwm.http.PwmSession;
 import password.pwm.http.bean.ChangePasswordBean;
 import password.pwm.http.servlet.forgottenpw.ForgottenPasswordUtil;
 import password.pwm.ldap.PasswordChangeProgressChecker;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.svc.event.AuditEvent;
 import password.pwm.svc.event.AuditServiceClient;

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/configguide/ConfigGuideUtils.java

@@ -53,7 +53,7 @@ import password.pwm.http.bean.ConfigGuideBean;
 import password.pwm.i18n.Message;
 import password.pwm.ldap.schema.SchemaManager;
 import password.pwm.ldap.schema.SchemaOperationResult;
-import password.pwm.util.LDAPPermissionCalculator;
+import password.pwm.ldap.LdapPermissionCalculator;
 import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.java.Percent;
 import password.pwm.util.logging.PwmLogger;
@@ -179,7 +179,7 @@ public class ConfigGuideUtils
 
         if ( configGuideBean.getStep() == GuideStep.LDAP_PERMISSIONS )
         {
-            final LDAPPermissionCalculator ldapPermissionCalculator = new LDAPPermissionCalculator(
+            final LdapPermissionCalculator ldapPermissionCalculator = new LdapPermissionCalculator(
                     new AppConfig( ConfigGuideForm.generateStoredConfig( configGuideBean ) ).getDomainConfigs().get( ConfigGuideForm.DOMAIN_ID ) );
             pwmRequest.setAttribute( PwmRequestAttribute.LdapPermissionItems, ldapPermissionCalculator );
         }

+ 4 - 4
server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerServlet.java

@@ -56,7 +56,7 @@ import password.pwm.http.servlet.configguide.ConfigGuideUtils;
 import password.pwm.i18n.Admin;
 import password.pwm.i18n.Config;
 import password.pwm.i18n.Display;
-import password.pwm.util.LDAPPermissionCalculator;
+import password.pwm.ldap.LdapPermissionCalculator;
 import password.pwm.util.debug.DebugItemGenerator;
 import password.pwm.util.i18n.LocaleHelper;
 import password.pwm.util.java.CollectionUtil;
@@ -402,7 +402,7 @@ public class ConfigManagerServlet extends AbstractPwmServlet
     {
         final StoredConfiguration storedConfiguration = readCurrentConfiguration( pwmRequest );
         final AppConfig appConfig = new AppConfig( storedConfiguration );
-        final LDAPPermissionCalculator ldapPermissionCalculator = new LDAPPermissionCalculator( appConfig.getDomainConfigs().get( pwmRequest.getDomainID() ) );
+        final LdapPermissionCalculator ldapPermissionCalculator = new LdapPermissionCalculator( appConfig.getDomainConfigs().get( pwmRequest.getDomainID() ) );
         pwmRequest.setAttribute( PwmRequestAttribute.LdapPermissionItems, ldapPermissionCalculator );
         pwmRequest.forwardToJsp( JspUrl.CONFIG_MANAGER_PERMISSIONS );
     }
@@ -421,9 +421,9 @@ public class ConfigManagerServlet extends AbstractPwmServlet
         try ( CSVPrinter csvPrinter = MiscUtil.makeCsvPrinter( pwmRequest.getPwmResponse().getOutputStream() ) )
         {
 
-            final LDAPPermissionCalculator ldapPermissionCalculator = new LDAPPermissionCalculator( pwmRequest.getDomainConfig() );
+            final LdapPermissionCalculator ldapPermissionCalculator = new LdapPermissionCalculator( pwmRequest.getDomainConfig() );
 
-            for ( final LDAPPermissionCalculator.PermissionRecord permissionRecord : ldapPermissionCalculator.getPermissionRecords() )
+            for ( final LdapPermissionCalculator.PermissionRecord permissionRecord : ldapPermissionCalculator.getPermissionRecords() )
             {
                 final String settingTxt = permissionRecord.getPwmSetting() == null
                         ? LocaleHelper.getLocalizedMessage( Display.Value_NotApplicable, pwmRequest )

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordServlet.java

@@ -63,7 +63,7 @@ import password.pwm.http.servlet.oauth.OAuthMachine;
 import password.pwm.http.servlet.oauth.OAuthSettings;
 import password.pwm.i18n.Message;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.ldap.auth.AuthenticationUtility;
 import password.pwm.ldap.auth.PwmAuthenticationSource;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordStageProcessor.java

@@ -36,7 +36,7 @@ import password.pwm.http.PwmRequestAttribute;
 import password.pwm.http.PwmRequestContext;
 import password.pwm.http.bean.ForgottenPasswordBean;
 import password.pwm.http.bean.ForgottenPasswordStage;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.stats.Statistic;
 import password.pwm.svc.stats.StatisticsClient;
 import password.pwm.util.java.CollectionUtil;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordStateMachine.java

@@ -55,7 +55,7 @@ import password.pwm.http.bean.ForgottenPasswordStage;
 import password.pwm.http.tag.PasswordRequirementsTag;
 import password.pwm.i18n.Display;
 import password.pwm.i18n.Message;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.auth.AuthenticationUtility;
 import password.pwm.ldap.auth.SessionAuthenticator;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordUtil.java

@@ -59,7 +59,7 @@ import password.pwm.http.PwmSession;
 import password.pwm.http.auth.HttpAuthRecord;
 import password.pwm.http.bean.ForgottenPasswordBean;
 import password.pwm.i18n.Message;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.svc.event.AuditEvent;
 import password.pwm.svc.event.AuditRecord;

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/forgottenpw/RemoteVerificationMethod.java

@@ -35,11 +35,11 @@ import password.pwm.http.HttpContentType;
 import password.pwm.http.HttpHeader;
 import password.pwm.http.HttpMethod;
 import password.pwm.http.PwmRequest;
-import password.pwm.ldap.UserInfoBean;
+import password.pwm.user.UserInfoBean;
 import password.pwm.svc.httpclient.PwmHttpClient;
 import password.pwm.svc.httpclient.PwmHttpClientRequest;
 import password.pwm.svc.httpclient.PwmHttpClientResponse;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.logging.PwmLogger;
 import password.pwm.util.macro.MacroRequest;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskCardInfoBean.java

@@ -32,7 +32,7 @@ import password.pwm.config.profile.HelpdeskProfile;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequest;
 import password.pwm.http.servlet.peoplesearch.PhotoDataReader;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.java.TimeDuration;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskDetailInfoBean.java

@@ -43,7 +43,7 @@ import password.pwm.http.bean.DisplayElement;
 import password.pwm.http.servlet.accountinfo.AccountInformationBean;
 import password.pwm.http.tag.PasswordRequirementsTag;
 import password.pwm.i18n.Display;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.ViewableUserInfoDisplayReader;
 import password.pwm.util.i18n.LocaleHelper;

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskServlet.java

@@ -61,8 +61,8 @@ import password.pwm.http.servlet.peoplesearch.PhotoDataReader;
 import password.pwm.http.servlet.peoplesearch.SearchRequestBean;
 import password.pwm.i18n.Message;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.PhotoDataBean;
-import password.pwm.ldap.UserInfo;
+import password.pwm.bean.PhotoDataBean;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.search.SearchConfiguration;
 import password.pwm.ldap.search.UserSearchEngine;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskServletUtil.java

@@ -37,7 +37,7 @@ import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmHttpRequestWrapper;
 import password.pwm.http.PwmRequest;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.permission.UserPermissionType;
 import password.pwm.ldap.permission.UserPermissionUtility;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskVerificationOptionsBean.java

@@ -36,7 +36,7 @@ import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequest;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.svc.token.TokenUtil;
 import password.pwm.util.java.CollectionUtil;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskVerificationStateBean.java

@@ -31,7 +31,7 @@ import password.pwm.bean.UserIdentity;
 import password.pwm.config.option.IdentityVerificationMethod;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequest;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.java.TimeDuration;

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/newuser/NewUserServlet.java

@@ -49,8 +49,8 @@ import password.pwm.http.servlet.ControlledPwmServlet;
 import password.pwm.http.servlet.PwmServletDefinition;
 import password.pwm.http.servlet.forgottenpw.RemoteVerificationMethod;
 import password.pwm.i18n.Message;
-import password.pwm.ldap.UserInfo;
-import password.pwm.ldap.UserInfoBean;
+import password.pwm.user.UserInfo;
+import password.pwm.user.UserInfoBean;
 import password.pwm.svc.token.TokenPayload;
 import password.pwm.svc.token.TokenService;
 import password.pwm.svc.token.TokenType;

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/newuser/NewUserUtils.java

@@ -55,8 +55,8 @@ import password.pwm.http.PwmRequestAttribute;
 import password.pwm.http.PwmSession;
 import password.pwm.http.bean.NewUserBean;
 import password.pwm.http.servlet.forgottenpw.RemoteVerificationMethod;
-import password.pwm.ldap.UserInfo;
-import password.pwm.ldap.UserInfoBean;
+import password.pwm.user.UserInfo;
+import password.pwm.user.UserInfoBean;
 import password.pwm.ldap.auth.PwmAuthenticationSource;
 import password.pwm.ldap.auth.SessionAuthenticator;
 import password.pwm.ldap.search.SearchConfiguration;

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/peoplesearch/PeopleSearchDataReader.java

@@ -49,8 +49,8 @@ import password.pwm.http.servlet.peoplesearch.bean.SearchResultBean;
 import password.pwm.http.servlet.peoplesearch.bean.UserDetailBean;
 import password.pwm.http.servlet.peoplesearch.bean.UserReferenceBean;
 import password.pwm.i18n.Display;
-import password.pwm.ldap.PhotoDataBean;
-import password.pwm.ldap.UserInfo;
+import password.pwm.bean.PhotoDataBean;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.permission.UserPermissionType;
 import password.pwm.ldap.permission.UserPermissionUtility;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/peoplesearch/PeopleSearchServlet.java

@@ -41,7 +41,7 @@ import password.pwm.http.servlet.peoplesearch.bean.OrgChartDataBean;
 import password.pwm.http.servlet.peoplesearch.bean.PeopleSearchClientConfigBean;
 import password.pwm.http.servlet.peoplesearch.bean.SearchResultBean;
 import password.pwm.http.servlet.peoplesearch.bean.UserDetailBean;
-import password.pwm.ldap.PhotoDataBean;
+import password.pwm.bean.PhotoDataBean;
 import password.pwm.svc.stats.Statistic;
 import password.pwm.svc.stats.StatisticsClient;
 import password.pwm.util.java.MiscUtil;

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/peoplesearch/PhotoDataReader.java

@@ -37,10 +37,10 @@ import password.pwm.http.HttpHeader;
 import password.pwm.http.HttpMethod;
 import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmURL;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.ldap.LdapOperationsHelper;
 import password.pwm.ldap.permission.UserPermissionUtility;
-import password.pwm.ldap.PhotoDataBean;
+import password.pwm.bean.PhotoDataBean;
 import password.pwm.svc.httpclient.PwmHttpClient;
 import password.pwm.svc.httpclient.PwmHttpClientConfiguration;
 import password.pwm.svc.httpclient.PwmHttpClientRequest;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/resource/CacheEntry.java

@@ -21,7 +21,7 @@
 package password.pwm.http.servlet.resource;
 
 import lombok.Value;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 
 import java.io.Serializable;
 import java.util.Collections;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/resource/MemoryFileResource.java

@@ -20,7 +20,7 @@
 
 package password.pwm.http.servlet.resource;
 
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 
 import java.io.IOException;
 import java.io.InputStream;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/resource/ResourceFileServlet.java

@@ -29,7 +29,7 @@ import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.HttpHeader;
 import password.pwm.http.HttpMethod;
 import password.pwm.http.PwmRequest;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.http.servlet.PwmServlet;
 import password.pwm.svc.stats.Statistic;
 import password.pwm.svc.stats.StatisticsClient;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/resource/ResourceServletConfiguration.java

@@ -29,7 +29,7 @@ import password.pwm.config.DomainConfig;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.value.FileValue;
 import password.pwm.util.java.CollectionUtil;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.java.JavaHelper;
 import password.pwm.util.java.StringUtil;
 import password.pwm.util.json.JsonFactory;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/setupresponses/SetupResponsesServlet.java

@@ -47,7 +47,7 @@ import password.pwm.http.bean.SetupResponsesBean;
 import password.pwm.http.servlet.ControlledPwmServlet;
 import password.pwm.http.servlet.PwmServletDefinition;
 import password.pwm.i18n.Message;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.svc.event.AuditEvent;
 import password.pwm.svc.event.AuditRecordFactory;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/updateprofile/UpdateProfileServlet.java

@@ -43,7 +43,7 @@ import password.pwm.http.ProcessStatus;
 import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmRequestAttribute;
 import password.pwm.http.PwmSession;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.http.bean.UpdateProfileBean;
 import password.pwm.http.servlet.ControlledPwmServlet;
 import password.pwm.i18n.Message;

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/updateprofile/UpdateProfileUtil.java

@@ -42,7 +42,7 @@ import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmRequestAttribute;
 import password.pwm.http.bean.UpdateProfileBean;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.svc.stats.Statistic;
 import password.pwm.svc.stats.StatisticsClient;

+ 1 - 1
server/src/main/java/password/pwm/http/tag/conditional/PwmIfTest.java

@@ -36,7 +36,7 @@ import password.pwm.health.HealthService;
 import password.pwm.health.HealthStatus;
 import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmRequestFlag;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.PwmService;
 import password.pwm.svc.otp.OTPUserRecord;
 import password.pwm.util.java.StringUtil;

+ 2 - 1
server/src/main/java/password/pwm/ldap/LdapOperationsHelper.java

@@ -45,11 +45,12 @@ import password.pwm.config.option.AutoSetLdapUserLanguage;
 import password.pwm.config.profile.AbstractProfile;
 import password.pwm.config.profile.LdapProfile;
 import password.pwm.config.value.data.FormConfiguration;
+import password.pwm.bean.PhotoDataBean;
 import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmOperationalException;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.ldap.search.SearchConfiguration;
 import password.pwm.ldap.search.UserSearchEngine;
 import password.pwm.svc.cache.CacheKey;

+ 4 - 4
server/src/main/java/password/pwm/util/LDAPPermissionCalculator.java → server/src/main/java/password/pwm/ldap/LdapPermissionCalculator.java

@@ -18,7 +18,7 @@
  * limitations under the License.
  */
 
-package password.pwm.util;
+package password.pwm.ldap;
 
 import com.novell.ldapchai.ChaiConstant;
 import lombok.Value;
@@ -59,16 +59,16 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.TreeMap;
 
-public class LDAPPermissionCalculator implements Serializable
+public class LdapPermissionCalculator implements Serializable
 {
     private static final long serialVersionUID = 1L;
 
-    private static final PwmLogger LOGGER = PwmLogger.forClass( LDAPPermissionCalculator.class );
+    private static final PwmLogger LOGGER = PwmLogger.forClass( LdapPermissionCalculator.class );
 
     private final transient DomainConfig domainConfig;
     private final List<PermissionRecord> permissionRecords;
 
-    public LDAPPermissionCalculator( final DomainConfig domainConfig ) throws PwmUnrecoverableException
+    public LdapPermissionCalculator( final DomainConfig domainConfig ) throws PwmUnrecoverableException
     {
         this.domainConfig = Objects.requireNonNull( domainConfig );
         permissionRecords = figureRecords();

+ 5 - 4
server/src/main/java/password/pwm/ldap/UserInfoReader.java → server/src/main/java/password/pwm/ldap/LdapUserInfoReader.java

@@ -55,6 +55,7 @@ import password.pwm.svc.cr.CrService;
 import password.pwm.svc.otp.OTPUserRecord;
 import password.pwm.svc.otp.OtpService;
 import password.pwm.svc.pwnotify.PwNotifyUserStatus;
+import password.pwm.user.UserInfo;
 import password.pwm.util.PasswordData;
 import password.pwm.util.form.FormUtility;
 import password.pwm.util.i18n.LocaleHelper;
@@ -78,9 +79,9 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 
-public class UserInfoReader implements UserInfo
+public class LdapUserInfoReader implements UserInfo
 {
-    private static final PwmLogger LOGGER = PwmLogger.forClass( UserInfoReader.class );
+    private static final PwmLogger LOGGER = PwmLogger.forClass( LdapUserInfoReader.class );
 
     private final UserIdentity userIdentity;
     private final PasswordData currentPassword;
@@ -96,7 +97,7 @@ public class UserInfoReader implements UserInfo
      */
     private UserInfo selfCachedReference;
 
-    private UserInfoReader(
+    private LdapUserInfoReader(
             final UserIdentity userIdentity,
             final PasswordData currentPassword,
             final SessionLabel sessionLabel,
@@ -129,7 +130,7 @@ public class UserInfoReader implements UserInfo
         final PwmDomain pwmDomain = pwmApplication.domains().get( userIdentity.getDomainID() );
         LdapOperationsHelper.addConfiguredUserObjectClass( sessionLabel, userIdentity, pwmDomain );
 
-        final UserInfoReader userInfo = new UserInfoReader( userIdentity, currentPassword, sessionLabel, locale, pwmApplication, chaiProvider );
+        final LdapUserInfoReader userInfo = new LdapUserInfoReader( userIdentity, currentPassword, sessionLabel, locale, pwmApplication, chaiProvider );
         final UserInfo selfCachedReference = CachingProxyWrapper.create( UserInfo.class, userInfo );
         userInfo.selfCachedReference = selfCachedReference;
         return selfCachedReference;

+ 3 - 3
server/src/main/java/password/pwm/ldap/PasswordChangeProgressChecker.java

@@ -33,7 +33,7 @@ import password.pwm.config.option.PasswordSyncCheckMode;
 import password.pwm.config.profile.ChangePasswordProfile;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.i18n.Display;
-import password.pwm.util.ProgressInfo;
+import password.pwm.util.ProgressInfoCalculator;
 import password.pwm.util.i18n.LocaleHelper;
 import password.pwm.util.java.PwmTimeUtil;
 import password.pwm.util.json.JsonFactory;
@@ -230,8 +230,8 @@ public class PasswordChangeProgressChecker
         {
             final float pctComplete = figureAverageProgress( progressRecords );
             LOGGER.trace( pwmSession, () -> "percent complete: " + pctComplete );
-            final ProgressInfo progressInfo = new ProgressInfo( tracker.beginTime, 100, ( long ) pctComplete );
-            final Instant actualEstimate = progressInfo.estimatedCompletion();
+            final ProgressInfoCalculator progressInfoCalculator = ProgressInfoCalculator.createProgressInfo( tracker.beginTime, 100, ( long ) pctComplete );
+            final Instant actualEstimate = progressInfoCalculator.estimatedCompletion();
 
             if ( actualEstimate.isBefore( minCompletionTime ) )
             {

+ 2 - 1
server/src/main/java/password/pwm/ldap/UserInfoFactory.java

@@ -30,6 +30,7 @@ import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequestContext;
+import password.pwm.user.UserInfo;
 import password.pwm.util.PasswordData;
 
 import java.util.Locale;
@@ -149,7 +150,7 @@ public class UserInfoFactory
     )
             throws PwmUnrecoverableException, ChaiUnavailableException
     {
-        return UserInfoReader.create( userIdentity, currentPassword, sessionLabel, userLocale, pwmApplication, provider );
+        return LdapUserInfoReader.create( userIdentity, currentPassword, sessionLabel, userLocale, pwmApplication, provider );
     }
 
 

+ 1 - 0
server/src/main/java/password/pwm/ldap/ViewableUserInfoDisplayReader.java

@@ -28,6 +28,7 @@ import password.pwm.config.option.ViewStatusFields;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.bean.DisplayElement;
 import password.pwm.i18n.Display;
+import password.pwm.user.UserInfo;
 import password.pwm.util.i18n.LocaleHelper;
 import password.pwm.util.java.PwmTimeUtil;
 import password.pwm.util.java.StringUtil;

+ 1 - 1
server/src/main/java/password/pwm/ldap/auth/SessionAuthenticator.java

@@ -42,7 +42,7 @@ import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmRequestContext;
 import password.pwm.http.PwmSession;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.search.UserSearchEngine;
 import password.pwm.svc.intruder.IntruderDomainService;

+ 1 - 1
server/src/main/java/password/pwm/svc/db/DBConfiguration.java

@@ -27,7 +27,7 @@ import password.pwm.AppProperty;
 import password.pwm.config.AppConfig;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.value.FileValue;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.PasswordData;
 import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.java.StringUtil;

+ 1 - 1
server/src/main/java/password/pwm/svc/db/JDBCDriverLoader.java

@@ -28,7 +28,7 @@ import password.pwm.PwmConstants;
 import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.java.JavaHelper;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.logging.PwmLogger;

+ 1 - 1
server/src/main/java/password/pwm/svc/email/EmailService.java

@@ -36,7 +36,7 @@ import password.pwm.error.PwmOperationalException;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.health.HealthMessage;
 import password.pwm.health.HealthRecord;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.AbstractPwmService;
 import password.pwm.svc.PwmService;
 import password.pwm.svc.stats.Statistic;

+ 1 - 1
server/src/main/java/password/pwm/svc/event/AuditRecordFactory.java

@@ -31,7 +31,7 @@ import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmSession;
 import password.pwm.i18n.PwmDisplayBundle;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.svc.userhistory.LdapXmlUserHistory;
 import password.pwm.util.i18n.LocaleHelper;

+ 1 - 1
server/src/main/java/password/pwm/svc/event/AuditServiceClient.java

@@ -25,7 +25,7 @@ import password.pwm.PwmDomain;
 import password.pwm.bean.SessionLabel;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequest;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.logging.PwmLogger;
 import password.pwm.util.macro.MacroRequest;

+ 1 - 1
server/src/main/java/password/pwm/svc/httpclient/ApachePwmHttpClient.java

@@ -70,7 +70,7 @@ import password.pwm.http.HttpContentType;
 import password.pwm.http.HttpEntityDataType;
 import password.pwm.http.HttpMethod;
 import password.pwm.http.PwmURL;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.svc.stats.Statistic;
 import password.pwm.svc.stats.StatisticsClient;
 import password.pwm.util.java.AtomicLoopIntIncrementer;

+ 1 - 1
server/src/main/java/password/pwm/svc/httpclient/JavaPwmHttpClient.java

@@ -34,7 +34,7 @@ import password.pwm.http.HttpContentType;
 import password.pwm.http.HttpEntityDataType;
 import password.pwm.http.HttpHeader;
 import password.pwm.http.HttpMethod;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.svc.stats.Statistic;
 import password.pwm.svc.stats.StatisticsClient;
 import password.pwm.util.java.AtomicLoopIntIncrementer;

+ 1 - 1
server/src/main/java/password/pwm/svc/httpclient/PwmHttpClientMessage.java

@@ -25,7 +25,7 @@ import password.pwm.PwmApplication;
 import password.pwm.PwmConstants;
 import password.pwm.http.HttpEntityDataType;
 import password.pwm.http.HttpHeader;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.java.StringUtil;
 
 import java.util.Map;

+ 1 - 1
server/src/main/java/password/pwm/svc/httpclient/PwmHttpClientRequest.java

@@ -26,7 +26,7 @@ import lombok.Value;
 import password.pwm.PwmApplication;
 import password.pwm.http.HttpEntityDataType;
 import password.pwm.http.HttpMethod;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.java.AtomicLoopIntIncrementer;
 import password.pwm.util.java.StringUtil;
 

+ 1 - 1
server/src/main/java/password/pwm/svc/httpclient/PwmHttpClientResponse.java

@@ -25,7 +25,7 @@ import lombok.Value;
 import password.pwm.PwmApplication;
 import password.pwm.http.HttpContentType;
 import password.pwm.http.HttpEntityDataType;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 
 import java.io.Serializable;
 import java.util.Map;

+ 1 - 1
server/src/main/java/password/pwm/svc/intruder/IntruderDomainService.java

@@ -35,7 +35,7 @@ import password.pwm.error.PwmException;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.health.HealthRecord;
 import password.pwm.http.PwmRequest;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.svc.AbstractPwmService;
 import password.pwm.svc.PwmService;

+ 1 - 1
server/src/main/java/password/pwm/svc/pwnotify/PwNotifyEngine.java

@@ -30,7 +30,7 @@ import password.pwm.error.PwmError;
 import password.pwm.error.PwmOperationalException;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.permission.UserPermissionUtility;
 import password.pwm.svc.PwmService;

+ 1 - 1
server/src/main/java/password/pwm/svc/report/ReportRecordLocalDBStorageService.java

@@ -28,7 +28,7 @@ import password.pwm.config.option.DataStorageMethod;
 import password.pwm.error.PwmException;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.health.HealthRecord;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.AbstractPwmService;
 import password.pwm.svc.PwmService;
 import password.pwm.util.java.ClosableIterator;

+ 1 - 1
server/src/main/java/password/pwm/svc/report/ReportService.java

@@ -34,7 +34,7 @@ import password.pwm.error.PwmException;
 import password.pwm.error.PwmOperationalException;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.health.HealthRecord;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.permission.UserPermissionUtility;
 import password.pwm.svc.AbstractPwmService;

+ 1 - 1
server/src/main/java/password/pwm/svc/report/UserReportRecord.java

@@ -27,7 +27,7 @@ import password.pwm.bean.DomainID;
 import password.pwm.bean.PasswordStatus;
 import password.pwm.config.option.DataStorageMethod;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 
 import java.io.Serializable;
 import java.time.Instant;

+ 1 - 1
server/src/main/java/password/pwm/svc/sessiontrack/SessionTrackService.java

@@ -35,7 +35,7 @@ import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.health.HealthRecord;
 import password.pwm.http.PwmSession;
 import password.pwm.i18n.Admin;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.AbstractPwmService;
 import password.pwm.svc.PwmService;
 import password.pwm.util.i18n.LocaleHelper;

+ 1 - 1
server/src/main/java/password/pwm/svc/token/LdapTokenMachine.java

@@ -30,7 +30,7 @@ import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmOperationalException;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 import password.pwm.ldap.search.SearchConfiguration;
 import password.pwm.ldap.search.UserSearchEngine;

+ 1 - 1
server/src/main/java/password/pwm/svc/token/TokenService.java

@@ -49,7 +49,7 @@ import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.health.HealthMessage;
 import password.pwm.health.HealthRecord;
 import password.pwm.http.PwmRequestContext;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.SessionAuthenticator;
 import password.pwm.svc.AbstractPwmService;
 import password.pwm.svc.PwmService;

+ 1 - 1
server/src/main/java/password/pwm/svc/token/TokenUtil.java

@@ -35,7 +35,7 @@ import password.pwm.error.PwmError;
 import password.pwm.error.PwmOperationalException;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequestContext;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.java.StringUtil;
 import password.pwm.util.java.TimeDuration;

+ 1 - 1
server/src/main/java/password/pwm/svc/userhistory/DatabaseUserHistory.java

@@ -27,7 +27,7 @@ import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.event.AuditEventType;
 import password.pwm.svc.event.HelpdeskAuditRecord;
 import password.pwm.svc.event.UserAuditRecord;

+ 1 - 1
server/src/main/java/password/pwm/svc/userhistory/LdapXmlUserHistory.java

@@ -39,7 +39,7 @@ import password.pwm.config.profile.LdapProfile;
 import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.event.AuditEvent;
 import password.pwm.svc.event.AuditEventType;
 import password.pwm.svc.event.AuditRecordFactory;

+ 1 - 1
server/src/main/java/password/pwm/svc/userhistory/UserHistoryService.java

@@ -32,7 +32,7 @@ import password.pwm.error.PwmException;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.health.HealthMessage;
 import password.pwm.health.HealthRecord;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.AbstractPwmService;
 import password.pwm.svc.PwmService;
 import password.pwm.svc.event.UserAuditRecord;

+ 1 - 1
server/src/main/java/password/pwm/svc/userhistory/UserHistoryStore.java

@@ -22,7 +22,7 @@ package password.pwm.svc.userhistory;
 
 import password.pwm.bean.SessionLabel;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.event.UserAuditRecord;
 
 import java.util.List;

+ 1 - 1
server/src/main/java/password/pwm/ldap/UserInfo.java → server/src/main/java/password/pwm/user/UserInfo.java

@@ -18,7 +18,7 @@
  * limitations under the License.
  */
 
-package password.pwm.ldap;
+package password.pwm.user;
 
 import password.pwm.bean.PasswordStatus;
 import password.pwm.bean.ResponseInfoBean;

+ 2 - 2
server/src/main/java/password/pwm/ldap/UserInfoBean.java → server/src/main/java/password/pwm/user/UserInfoBean.java

@@ -18,7 +18,7 @@
  * limitations under the License.
  */
 
-package password.pwm.ldap;
+package password.pwm.user;
 
 import com.novell.ldapchai.impl.edir.entry.EdirEntries;
 import lombok.Builder;
@@ -174,7 +174,7 @@ public class UserInfoBean implements UserInfo
     {
         if ( attributes.containsKey( attribute ) )
         {
-            return Collections.unmodifiableList( Collections.singletonList( attributes.get( attribute ) ) );
+            return Collections.singletonList( attributes.get( attribute ) );
         }
 
         return Collections.emptyList();

+ 1 - 1
server/src/main/java/password/pwm/util/PasswordData.java

@@ -27,7 +27,7 @@ import password.pwm.error.PwmError;
 import password.pwm.error.PwmException;
 import password.pwm.error.PwmInternalException;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.util.java.ImmutableByteArray;
+import password.pwm.data.ImmutableByteArray;
 import password.pwm.util.logging.PwmLogger;
 import password.pwm.util.secure.PwmBlockAlgorithm;
 import password.pwm.util.secure.PwmHashAlgorithm;

+ 2 - 2
server/src/main/java/password/pwm/util/SampleDataGenerator.java

@@ -29,8 +29,8 @@ import password.pwm.bean.ResponseInfoBean;
 import password.pwm.bean.UserIdentity;
 import password.pwm.config.option.DataStorageMethod;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
-import password.pwm.ldap.UserInfoBean;
+import password.pwm.user.UserInfo;
+import password.pwm.user.UserInfoBean;
 import password.pwm.svc.otp.OTPUserRecord;
 import password.pwm.util.macro.MacroRequest;
 

+ 3 - 3
server/src/main/java/password/pwm/util/debug/LDAPPermissionItemGenerator.java

@@ -23,7 +23,7 @@ package password.pwm.util.debug;
 import org.apache.commons.csv.CSVPrinter;
 import password.pwm.config.DomainConfig;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.util.LDAPPermissionCalculator;
+import password.pwm.ldap.LdapPermissionCalculator;
 import password.pwm.util.java.MiscUtil;
 import password.pwm.util.java.StringUtil;
 
@@ -46,7 +46,7 @@ class LDAPPermissionItemGenerator implements DomainItemGenerator
     {
 
         final DomainConfig domainConfig = debugItemInput.getObfuscatedDomainConfig();
-        final LDAPPermissionCalculator ldapPermissionCalculator = new LDAPPermissionCalculator( domainConfig );
+        final LdapPermissionCalculator ldapPermissionCalculator = new LdapPermissionCalculator( domainConfig );
 
         final CSVPrinter csvPrinter = MiscUtil.makeCsvPrinter( outputStream );
         {
@@ -59,7 +59,7 @@ class LDAPPermissionItemGenerator implements DomainItemGenerator
             csvPrinter.printComment( StringUtil.join( headerRow, "," ) );
         }
 
-        for ( final LDAPPermissionCalculator.PermissionRecord record : ldapPermissionCalculator.getPermissionRecords() )
+        for ( final LdapPermissionCalculator.PermissionRecord record : ldapPermissionCalculator.getPermissionRecords() )
         {
             final List<String> dataRow = new ArrayList<>();
             dataRow.add( record.getAttribute() );

+ 1 - 1
server/src/main/java/password/pwm/util/form/FormUtility.java

@@ -40,7 +40,7 @@ import password.pwm.error.PwmError;
 import password.pwm.error.PwmOperationalException;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequest;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.search.SearchConfiguration;
 import password.pwm.ldap.search.UserSearchEngine;
 import password.pwm.svc.cache.CacheKey;

+ 2 - 3
server/src/main/java/password/pwm/util/java/CachingProxyWrapper.java

@@ -33,16 +33,15 @@ import java.util.concurrent.ConcurrentHashMap;
 @SuppressFBWarnings( "THROWS_METHOD_THROWS_CLAUSE_THROWABLE" )
 public class CachingProxyWrapper
 {
-
     @Value
-    private static final class MethodSignature
+    private static class MethodSignature
     {
         private final Method method;
         private final Object[] arguments;
     }
 
     @Value
-    private static final class ResultWrapper
+    private static class ResultWrapper
     {
         private final Object result;
     }

+ 0 - 138
server/src/main/java/password/pwm/util/java/Memorizer.java

@@ -1,138 +0,0 @@
-/*
- * Password Management Servlets (PWM)
- * http://www.pwm-project.org
- *
- * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2021 The PWM Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package password.pwm.util.java;
-
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import lombok.Value;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@SuppressFBWarnings( "THROWS_METHOD_THROWS_CLAUSE_THROWABLE" )
-public class Memorizer implements InvocationHandler
-{
-    private final StatisticCounterBundle<DebugStats> stats = new StatisticCounterBundle<>( DebugStats.class );
-
-    enum DebugStats
-    {
-        hits,
-        misses,
-    }
-
-    private final Object memorizedObject;
-
-    private final Map<MethodAndArgsKey, ValueWrapper> valueCache = new HashMap<>();
-
-    public static Object forObject( final Object memorizedObject )
-    {
-        if ( memorizedObject instanceof Memorizer )
-        {
-            return memorizedObject;
-        }
-
-        return Proxy.newProxyInstance(
-                memorizedObject.getClass().getClassLoader(),
-                memorizedObject.getClass().getInterfaces(),
-                new Memorizer( memorizedObject ) );
-    }
-
-    private Memorizer( final Object memorizedObject )
-    {
-        this.memorizedObject = memorizedObject;
-    }
-
-    @Override
-    public Object invoke( final Object object, final Method method, final Object[] args )
-            throws Throwable
-    {
-        if ( method.getReturnType().equals( Void.TYPE ) )
-        {
-            // Don't cache void methods
-            return realInvoke( method, args );
-        }
-        else
-        {
-            final MethodAndArgsKey key = new MethodAndArgsKey( method, args == null ? null : Arrays.asList( args ) );
-
-            ValueWrapper valueWrapper = valueCache.get( key );
-
-            // value is not in cache, so invoke method normally
-            if ( valueWrapper == null )
-            {
-                stats.increment( DebugStats.misses );
-                try
-                {
-                    final Object realValue = realInvoke( method, args );
-                    valueWrapper = new ValueWrapper( realValue );
-                    valueCache.put( key, valueWrapper );
-                }
-                catch ( final Exception e )
-                {
-                    throw e.getCause();
-                }
-            }
-            else
-            {
-                stats.increment( DebugStats.hits );
-            }
-
-            return valueWrapper.getValue();
-        }
-    }
-
-    private Object realInvoke( final Method method, final Object[] args )
-    throws Throwable
-    {
-        try
-        {
-            return method.invoke( memorizedObject, args );
-        }
-        catch ( final IllegalAccessException | InvocationTargetException e )
-        {
-            throw e.getCause();
-        }
-        catch ( final Throwable t )
-        {
-            throw t;
-        }
-    }
-
-
-    @Value
-    private static class ValueWrapper
-    {
-        private final Object value;
-    }
-
-    @Value
-    private static class MethodAndArgsKey
-    {
-        private final Method method;
-        private final List<Object> args;
-    }
-
-}

+ 3 - 3
server/src/main/java/password/pwm/util/localdb/LocalDBUtility.java

@@ -28,7 +28,7 @@ import password.pwm.PwmConstants;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmOperationalException;
 import password.pwm.util.EventRateMeter;
-import password.pwm.util.ProgressInfo;
+import password.pwm.util.ProgressInfoCalculator;
 import password.pwm.util.TransactionSizeCalculator;
 import password.pwm.util.java.AverageTracker;
 import password.pwm.util.java.ConditionalTaskExecutor;
@@ -410,8 +410,8 @@ public class LocalDBUtility
             final Map<String, String> stats = new LinkedHashMap<>();
             if ( totalBytes > 0 && byteReaderCounter > 0 )
             {
-                final ProgressInfo progressInfo = new ProgressInfo( startTime, totalBytes, byteReaderCounter );
-                stats.put( "progress", progressInfo.debugOutput() );
+                final ProgressInfoCalculator progressInfoCalculator = ProgressInfoCalculator.createProgressInfo( startTime, totalBytes, byteReaderCounter );
+                stats.put( "progress", progressInfoCalculator.debugOutput() );
             }
 
             stats.put( "linesRead", Integer.toString( lineReaderCounter ) );

+ 2 - 2
server/src/main/java/password/pwm/util/macro/ExternalRestMacro.java

@@ -26,8 +26,8 @@ import password.pwm.PwmDomain;
 import password.pwm.bean.SessionLabel;
 import password.pwm.bean.pub.PublicUserInfoBean;
 import password.pwm.error.PwmException;
-import password.pwm.ldap.UserInfo;
-import password.pwm.ldap.UserInfoBean;
+import password.pwm.user.UserInfo;
+import password.pwm.user.UserInfoBean;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.logging.PwmLogger;
 import password.pwm.ws.client.rest.RestClientHelper;

+ 1 - 1
server/src/main/java/password/pwm/util/macro/MacroRequest.java

@@ -29,7 +29,7 @@ import password.pwm.bean.UserIdentity;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.http.PwmRequestContext;
 import password.pwm.http.PwmRequest;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.UserInfoFactory;
 
 import java.util.Locale;

+ 1 - 1
server/src/main/java/password/pwm/util/macro/UserMacros.java

@@ -27,7 +27,7 @@ import password.pwm.bean.LoginInfoBean;
 import password.pwm.bean.UserIdentity;
 import password.pwm.config.PwmSetting;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.util.java.StringUtil;
 import password.pwm.util.java.TimeDuration;
 import password.pwm.util.logging.PwmLogger;

+ 1 - 1
server/src/main/java/password/pwm/util/password/PasswordRuleChecks.java

@@ -35,7 +35,7 @@ import password.pwm.config.profile.PwmPasswordRule;
 import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.svc.PwmService;
 import password.pwm.util.java.JavaHelper;
 import password.pwm.util.java.StringUtil;

+ 1 - 1
server/src/main/java/password/pwm/util/password/PasswordUtility.java

@@ -68,7 +68,7 @@ import password.pwm.http.PwmRequest;
 import password.pwm.http.PwmRequestContext;
 import password.pwm.http.PwmSession;
 import password.pwm.ldap.LdapOperationsHelper;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.ldap.auth.AuthenticationType;
 import password.pwm.ldap.auth.PwmAuthenticationSource;
 import password.pwm.ldap.permission.UserPermissionUtility;

+ 1 - 1
server/src/main/java/password/pwm/util/password/PwmPasswordAdRuleUtil.java

@@ -24,7 +24,7 @@ import password.pwm.config.option.ADPolicyComplexity;
 import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
 import password.pwm.error.PwmUnrecoverableException;
-import password.pwm.ldap.UserInfo;
+import password.pwm.user.UserInfo;
 import password.pwm.util.java.MiscUtil;
 import password.pwm.util.logging.PwmLogger;
 

Some files were not shown because too many files changed in this diff