Browse Source

add missing Override annotations

Jason Rivard 4 years ago
parent
commit
ce89945642
100 changed files with 300 additions and 51 deletions
  1. 1 0
      pwm-cr/src/main/java/password/pwm/cr/hash/PBKDF2HashMachine.java
  2. 1 0
      pwm-cr/src/main/java/password/pwm/cr/hash/TypicalHashMachine.java
  3. 2 0
      server/src/main/java/password/pwm/VerificationMethodSystem.java
  4. 1 0
      server/src/main/java/password/pwm/config/function/ActionCertImportFunction.java
  5. 1 0
      server/src/main/java/password/pwm/config/function/RemoteWebServiceCertImportFunction.java
  6. 18 41
      server/src/main/java/password/pwm/config/function/UserMatchViewerFunction.java
  7. 1 0
      server/src/main/java/password/pwm/config/profile/AbstractProfile.java
  8. 2 0
      server/src/main/java/password/pwm/config/profile/ChallengeProfile.java
  9. 2 0
      server/src/main/java/password/pwm/config/profile/PwmPasswordPolicy.java
  10. 6 0
      server/src/main/java/password/pwm/config/stored/StoredConfigurationImpl.java
  11. 6 0
      server/src/main/java/password/pwm/config/value/ActionValue.java
  12. 4 0
      server/src/main/java/password/pwm/config/value/BooleanValue.java
  13. 6 0
      server/src/main/java/password/pwm/config/value/ChallengeValue.java
  14. 6 0
      server/src/main/java/password/pwm/config/value/CustomLinkValue.java
  15. 17 10
      server/src/main/java/password/pwm/config/value/EmailValue.java
  16. 3 0
      server/src/main/java/password/pwm/config/value/FileValue.java
  17. 6 0
      server/src/main/java/password/pwm/config/value/FormValue.java
  18. 5 0
      server/src/main/java/password/pwm/config/value/LocalizedStringArrayValue.java
  19. 5 0
      server/src/main/java/password/pwm/config/value/LocalizedStringValue.java
  20. 3 0
      server/src/main/java/password/pwm/config/value/NamedSecretValue.java
  21. 3 0
      server/src/main/java/password/pwm/config/value/NumericArrayValue.java
  22. 2 0
      server/src/main/java/password/pwm/config/value/NumericValue.java
  23. 6 0
      server/src/main/java/password/pwm/config/value/OptionListValue.java
  24. 3 0
      server/src/main/java/password/pwm/config/value/PasswordValue.java
  25. 4 0
      server/src/main/java/password/pwm/config/value/PrivateKeyValue.java
  26. 6 0
      server/src/main/java/password/pwm/config/value/RemoteWebServiceValue.java
  27. 6 0
      server/src/main/java/password/pwm/config/value/StringArrayValue.java
  28. 5 0
      server/src/main/java/password/pwm/config/value/StringValue.java
  29. 6 0
      server/src/main/java/password/pwm/config/value/UserPermissionValue.java
  30. 2 0
      server/src/main/java/password/pwm/config/value/VerificationMethodValue.java
  31. 3 0
      server/src/main/java/password/pwm/config/value/X509CertificateValue.java
  32. 1 0
      server/src/main/java/password/pwm/health/ConfigurationChecker.java
  33. 5 0
      server/src/main/java/password/pwm/health/HealthMonitor.java
  34. 1 0
      server/src/main/java/password/pwm/health/HealthRecord.java
  35. 1 0
      server/src/main/java/password/pwm/health/JavaChecker.java
  36. 1 0
      server/src/main/java/password/pwm/health/LDAPHealthChecker.java
  37. 1 0
      server/src/main/java/password/pwm/health/LocalDBHealthChecker.java
  38. 1 0
      server/src/main/java/password/pwm/http/ContextManager.java
  39. 6 0
      server/src/main/java/password/pwm/http/HttpEventManager.java
  40. 1 0
      server/src/main/java/password/pwm/http/PwmResponse.java
  41. 1 0
      server/src/main/java/password/pwm/http/auth/OAuthFilterAuthenticationProvider.java
  42. 1 0
      server/src/main/java/password/pwm/http/bean/ActivateUserBean.java
  43. 1 0
      server/src/main/java/password/pwm/http/bean/ChangePasswordBean.java
  44. 1 0
      server/src/main/java/password/pwm/http/bean/ConfigGuideBean.java
  45. 1 0
      server/src/main/java/password/pwm/http/bean/ConfigManagerBean.java
  46. 1 0
      server/src/main/java/password/pwm/http/bean/DeleteAccountBean.java
  47. 1 0
      server/src/main/java/password/pwm/http/bean/ForgottenPasswordBean.java
  48. 1 0
      server/src/main/java/password/pwm/http/bean/GuestRegistrationBean.java
  49. 1 0
      server/src/main/java/password/pwm/http/bean/LoginServletBean.java
  50. 1 0
      server/src/main/java/password/pwm/http/bean/SetupOtpBean.java
  51. 1 0
      server/src/main/java/password/pwm/http/bean/SetupResponsesBean.java
  52. 1 0
      server/src/main/java/password/pwm/http/bean/ShortcutsBean.java
  53. 1 0
      server/src/main/java/password/pwm/http/bean/UpdateProfileBean.java
  54. 1 0
      server/src/main/java/password/pwm/http/filter/AuthenticationFilter.java
  55. 3 0
      server/src/main/java/password/pwm/http/filter/AuthorizationFilter.java
  56. 2 0
      server/src/main/java/password/pwm/http/filter/GZIPFilter.java
  57. 1 0
      server/src/main/java/password/pwm/http/filter/RequestInitializationFilter.java
  58. 2 0
      server/src/main/java/password/pwm/http/filter/SessionFilter.java
  59. 2 0
      server/src/main/java/password/pwm/http/servlet/AbstractPwmServlet.java
  60. 1 0
      server/src/main/java/password/pwm/http/servlet/ClientApiServlet.java
  61. 4 0
      server/src/main/java/password/pwm/http/servlet/ControlledPwmServlet.java
  62. 1 0
      server/src/main/java/password/pwm/http/servlet/DeleteAccountServlet.java
  63. 3 0
      server/src/main/java/password/pwm/http/servlet/ForgottenUsernameServlet.java
  64. 1 0
      server/src/main/java/password/pwm/http/servlet/FullPageHealthServlet.java
  65. 3 0
      server/src/main/java/password/pwm/http/servlet/GuestRegistrationServlet.java
  66. 1 0
      server/src/main/java/password/pwm/http/servlet/LoginServlet.java
  67. 1 0
      server/src/main/java/password/pwm/http/servlet/LogoutServlet.java
  68. 2 0
      server/src/main/java/password/pwm/http/servlet/SetupOtpServlet.java
  69. 1 0
      server/src/main/java/password/pwm/http/servlet/SetupResponsesServlet.java
  70. 3 0
      server/src/main/java/password/pwm/http/servlet/ShortcutServlet.java
  71. 1 0
      server/src/main/java/password/pwm/http/servlet/accountinfo/AccountInformationServlet.java
  72. 1 0
      server/src/main/java/password/pwm/http/servlet/activation/ActivateUserServlet.java
  73. 1 0
      server/src/main/java/password/pwm/http/servlet/admin/AdminServlet.java
  74. 2 0
      server/src/main/java/password/pwm/http/servlet/changepw/ChangePasswordServlet.java
  75. 1 0
      server/src/main/java/password/pwm/http/servlet/configeditor/ConfigEditorServlet.java
  76. 1 0
      server/src/main/java/password/pwm/http/servlet/configguide/ConfigGuideServlet.java
  77. 5 0
      server/src/main/java/password/pwm/http/servlet/configguide/GuideStep.java
  78. 3 0
      server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerCertificatesServlet.java
  79. 3 0
      server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerLocalDBServlet.java
  80. 1 0
      server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerLoginServlet.java
  81. 3 0
      server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerServlet.java
  82. 3 0
      server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerWordlistServlet.java
  83. 1 0
      server/src/main/java/password/pwm/http/servlet/configmanager/DebugItemGenerator.java
  84. 1 0
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordServlet.java
  85. 7 0
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordStageProcessor.java
  86. 11 0
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordStateMachine.java
  87. 2 0
      server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskServlet.java
  88. 1 0
      server/src/main/java/password/pwm/http/servlet/newuser/NewUserServlet.java
  89. 1 0
      server/src/main/java/password/pwm/http/servlet/peoplesearch/PeopleSearchServlet.java
  90. 5 0
      server/src/main/java/password/pwm/http/servlet/resource/MemoryFileResource.java
  91. 5 0
      server/src/main/java/password/pwm/http/servlet/resource/RealFileResource.java
  92. 5 0
      server/src/main/java/password/pwm/http/servlet/resource/ZipFileResource.java
  93. 2 0
      server/src/main/java/password/pwm/http/servlet/updateprofile/UpdateProfileServlet.java
  94. 1 0
      server/src/main/java/password/pwm/http/state/CryptoCookieBeanImpl.java
  95. 2 0
      server/src/main/java/password/pwm/http/state/CryptoRequestBeanImpl.java
  96. 1 0
      server/src/main/java/password/pwm/http/tag/DisplayTag.java
  97. 1 0
      server/src/main/java/password/pwm/http/tag/ErrorMessageTag.java
  98. 22 0
      server/src/main/java/password/pwm/http/tag/PasswordRequirementsTag.java
  99. 1 0
      server/src/main/java/password/pwm/http/tag/PwmAutofocusTag.java
  100. 1 0
      server/src/main/java/password/pwm/http/tag/PwmContextTag.java

+ 1 - 0
pwm-cr/src/main/java/password/pwm/cr/hash/PBKDF2HashMachine.java

@@ -39,6 +39,7 @@ class PBKDF2HashMachine extends AbstractHashMachine implements ResponseHashMachi
     {
     }
 
+    @Override
     public void init( final ResponseHashAlgorithm responseHashAlgorithm )
     {
         this.responseHashAlgorithm = responseHashAlgorithm;

+ 1 - 0
pwm-cr/src/main/java/password/pwm/cr/hash/TypicalHashMachine.java

@@ -62,6 +62,7 @@ public class TypicalHashMachine extends AbstractHashMachine implements ResponseH
     {
     }
 
+    @Override
     public void init( final ResponseHashAlgorithm responseHashAlgorithm )
     {
         this.responseHashAlgorithm = responseHashAlgorithm;

+ 2 - 0
server/src/main/java/password/pwm/VerificationMethodSystem.java

@@ -51,6 +51,7 @@ public interface VerificationMethodSystem
         private String displayPrompt;
         private String identifier;
 
+        @Override
         public String getDisplayPrompt( )
         {
             return displayPrompt;
@@ -61,6 +62,7 @@ public interface VerificationMethodSystem
             this.displayPrompt = displayPrompt;
         }
 
+        @Override
         public String getIdentifier( )
         {
             return identifier;

+ 1 - 0
server/src/main/java/password/pwm/config/function/ActionCertImportFunction.java

@@ -86,6 +86,7 @@ public class ActionCertImportFunction extends AbstractUriCertImportFunction
         return uriString;
     }
 
+    @Override
     void store(
             final List<X509Certificate> certs,
             final StoredConfigurationModifier storedConfiguration,

+ 1 - 0
server/src/main/java/password/pwm/config/function/RemoteWebServiceCertImportFunction.java

@@ -71,6 +71,7 @@ public class RemoteWebServiceCertImportFunction extends AbstractUriCertImportFun
         return extraData;
     }
 
+    @Override
     void store(
             final List<X509Certificate> certs,
             final StoredConfigurationModifier modifier,

+ 18 - 41
server/src/main/java/password/pwm/config/function/UserMatchViewerFunction.java

@@ -23,6 +23,8 @@ package password.pwm.config.function;
 import com.novell.ldapchai.ChaiEntry;
 import com.novell.ldapchai.exception.ChaiUnavailableException;
 import com.novell.ldapchai.provider.ChaiProvider;
+import lombok.Builder;
+import lombok.Value;
 import password.pwm.AppProperty;
 import password.pwm.PwmApplication;
 import password.pwm.bean.SessionLabel;
@@ -32,6 +34,8 @@ import password.pwm.config.PwmSetting;
 import password.pwm.config.SettingUIFunction;
 import password.pwm.config.stored.StoredConfiguration;
 import password.pwm.config.stored.StoredConfigurationModifier;
+import password.pwm.config.value.StoredValue;
+import password.pwm.config.value.ValueTypeConverter;
 import password.pwm.config.value.data.UserPermission;
 import password.pwm.error.ErrorInformation;
 import password.pwm.error.PwmError;
@@ -72,18 +76,18 @@ public class UserMatchViewerFunction implements SettingUIFunction
         final Collection<UserIdentity> users = discoverMatchingUsers( pwmApplication, maxResultSize, storedConfiguration.newStoredConfiguration(), setting, profile );
         final TimeDuration searchDuration = TimeDuration.fromCurrent( startSearchTime );
 
-        final UserMatchViewerResults userMatchViewerResults = new UserMatchViewerResults();
+        final String message = LocaleHelper.getLocalizedMessage(
+                Display.Display_SearchResultsInfo, pwmRequest,
+                String.valueOf( users.size() ),
+                searchDuration.asLongString( pwmRequest.getLocale() ) );
+
         final boolean sizeExceeded = users.size() >= maxResultSize;
 
-        userMatchViewerResults.setUsers( users );
-        userMatchViewerResults.setSearchOperationSummary(
-                LocaleHelper.getLocalizedMessage(
-                        Display.Display_SearchResultsInfo, pwmRequest,
-                        String.valueOf( users.size() ),
-                        searchDuration.asLongString( pwmRequest.getLocale() )
-                ) );
-        userMatchViewerResults.setSizeExceeded( sizeExceeded );
-        return userMatchViewerResults;
+        return UserMatchViewerResults.builder()
+                .users( users )
+                .searchOperationSummary( message )
+                .sizeExceeded( sizeExceeded )
+                .build();
     }
 
     public List<UserIdentity> discoverMatchingUsers(
@@ -97,7 +101,8 @@ public class UserMatchViewerFunction implements SettingUIFunction
     {
         final Configuration config = new Configuration( storedConfiguration );
         final PwmApplication tempApplication = PwmApplication.createPwmApplication( pwmApplication.getPwmEnvironment().makeRuntimeInstance( config ) );
-        final List<UserPermission> permissions = ( List<UserPermission> ) storedConfiguration.readSetting( setting, profile ).toNativeObject();
+        final StoredValue storedValue = storedConfiguration.readSetting( setting, profile );
+        final List<UserPermission> permissions = ValueTypeConverter.valueToUserPermissions( storedValue );
 
         validateUserPermissionLdapValues( tempApplication, permissions );
 
@@ -175,40 +180,12 @@ public class UserMatchViewerFunction implements SettingUIFunction
         }
     }
 
+    @Value
+    @Builder
     public static class UserMatchViewerResults implements Serializable
     {
         private Collection<UserIdentity> users;
         private boolean sizeExceeded;
         private String searchOperationSummary;
-
-        public Collection<UserIdentity> getUsers( )
-        {
-            return users;
-        }
-
-        public void setUsers( final Collection<UserIdentity> users )
-        {
-            this.users = users;
-        }
-
-        public boolean isSizeExceeded( )
-        {
-            return sizeExceeded;
-        }
-
-        public void setSizeExceeded( final boolean sizeExceeded )
-        {
-            this.sizeExceeded = sizeExceeded;
-        }
-
-        public String getSearchOperationSummary( )
-        {
-            return searchOperationSummary;
-        }
-
-        public void setSearchOperationSummary( final String searchOperationSummary )
-        {
-            this.searchOperationSummary = searchOperationSummary;
-        }
     }
 }

+ 1 - 0
server/src/main/java/password/pwm/config/profile/AbstractProfile.java

@@ -58,6 +58,7 @@ public abstract class AbstractProfile implements Profile
         return identifier;
     }
 
+    @Override
     public String getDisplayName( final Locale locale )
     {
         return getIdentifier();

+ 2 - 0
server/src/main/java/password/pwm/config/profile/ChallengeProfile.java

@@ -145,11 +145,13 @@ public class ChallengeProfile implements Profile, Serializable
         return new ChallengeProfile( profileID, locale, challengeSet, helpdeskChallengeSet, minRandomSetup, minHelpdeskRandomSetup, null );
     }
 
+    @Override
     public String getIdentifier( )
     {
         return profileID;
     }
 
+    @Override
     public String getDisplayName( final Locale locale )
     {
         return getIdentifier();

+ 2 - 0
server/src/main/java/password/pwm/config/profile/PwmPasswordPolicy.java

@@ -90,11 +90,13 @@ public class PwmPasswordPolicy implements Profile, Serializable
         return new PwmPasswordPolicy( policyMap, chaiPasswordPolicy, policyMetaData );
     }
 
+    @Override
     public String getIdentifier( )
     {
         return profileID;
     }
 
+    @Override
     public String getDisplayName( final Locale locale )
     {
         return getIdentifier();

+ 6 - 0
server/src/main/java/password/pwm/config/stored/StoredConfigurationImpl.java

@@ -134,6 +134,7 @@ public class StoredConfigurationImpl implements StoredConfiguration
         return Optional.empty();
     }
 
+    @Override
     public boolean isDefaultValue( final PwmSetting setting, final String profileID )
     {
         final StoredConfigItemKey key = StoredConfigItemKey.fromSetting( setting, profileID );
@@ -194,6 +195,7 @@ public class StoredConfigurationImpl implements StoredConfiguration
         return setting.getKey() + "=" + storedValue.toDebugString( null );
     }
 
+    @Override
     public Set<StoredConfigItemKey> modifiedItems()
     {
         return Collections.unmodifiableSet( storedValues.keySet() );
@@ -207,12 +209,14 @@ public class StoredConfigurationImpl implements StoredConfiguration
                 .orElse( Collections.emptyList() );
     }
 
+    @Override
     public ValueMetaData readSettingMetadata( final PwmSetting setting, final String profileID )
     {
         final StoredConfigItemKey key = StoredConfigItemKey.fromSetting( setting, profileID );
         return metaValues.get( key );
     }
 
+    @Override
     public StoredValue readSetting( final PwmSetting setting, final String profileID )
     {
         final StoredConfigItemKey key = StoredConfigItemKey.fromSetting( setting, profileID );
@@ -225,6 +229,7 @@ public class StoredConfigurationImpl implements StoredConfiguration
         return storedValue;
     }
 
+    @Override
     public String valueHash()
     {
         return valueHashSupplier.get();
@@ -253,6 +258,7 @@ public class StoredConfigurationImpl implements StoredConfiguration
 
     private PwmSecurityKey cachedKey;
 
+    @Override
     public PwmSecurityKey getKey() throws PwmUnrecoverableException
     {
         if ( cachedKey == null )

+ 6 - 0
server/src/main/java/password/pwm/config/value/ActionValue.java

@@ -64,6 +64,7 @@ public class ActionValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public ActionValue fromJson( final String input )
             {
                 if ( input == null )
@@ -87,6 +88,7 @@ public class ActionValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public ActionValue fromXmlElement(
                     final PwmSetting pwmSetting,
                     final XmlElement settingElement,
@@ -182,6 +184,7 @@ public class ActionValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -220,11 +223,13 @@ public class ActionValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public List<ActionConfiguration> toNativeObject( )
     {
         return Collections.unmodifiableList( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )
@@ -285,6 +290,7 @@ public class ActionValue extends AbstractValue implements StoredValue
         return output;
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         final StringBuilder sb = new StringBuilder();

+ 4 - 0
server/src/main/java/password/pwm/config/value/BooleanValue.java

@@ -57,11 +57,13 @@ public class BooleanValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public BooleanValue fromJson( final String value )
             {
                 return BooleanValue.of( JsonUtil.deserialize( value, Boolean.class ) );
             }
 
+            @Override
             public BooleanValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey input )
             {
                 final Optional<XmlElement> valueElement = settingElement.getChild( StoredConfigXmlSerializer.StoredConfigXmlConstants.XML_ELEMENT_VALUE );
@@ -76,6 +78,7 @@ public class BooleanValue implements StoredValue
         };
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         return Collections.emptyList();
@@ -95,6 +98,7 @@ public class BooleanValue implements StoredValue
         return value;
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         final Locale loc = ( locale == null )

+ 6 - 0
server/src/main/java/password/pwm/config/value/ChallengeValue.java

@@ -55,6 +55,7 @@ public class ChallengeValue extends AbstractValue implements StoredValue
         return new StoredValueFactory()
         {
 
+            @Override
             public ChallengeValue fromJson( final String input )
             {
                 if ( input == null )
@@ -74,6 +75,7 @@ public class ChallengeValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public ChallengeValue fromXmlElement(
                     final PwmSetting pwmSetting,
                     final XmlElement settingElement,
@@ -111,6 +113,7 @@ public class ChallengeValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -134,11 +137,13 @@ public class ChallengeValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public Map<String, List<ChallengeItemConfiguration>> toNativeObject( )
     {
         return Collections.unmodifiableMap( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )
@@ -239,6 +244,7 @@ public class ChallengeValue extends AbstractValue implements StoredValue
                 .build();
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         if ( values == null )

+ 6 - 0
server/src/main/java/password/pwm/config/value/CustomLinkValue.java

@@ -50,6 +50,7 @@ public class CustomLinkValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public CustomLinkValue fromJson( final String input )
             {
                 if ( input == null )
@@ -70,6 +71,7 @@ public class CustomLinkValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public CustomLinkValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
                     throws PwmOperationalException
             {
@@ -88,6 +90,7 @@ public class CustomLinkValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -100,11 +103,13 @@ public class CustomLinkValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public List<CustomLinkConfiguration> toNativeObject( )
     {
         return Collections.unmodifiableList( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )
@@ -128,6 +133,7 @@ public class CustomLinkValue extends AbstractValue implements StoredValue
         return Collections.emptyList();
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         if ( values != null && !values.isEmpty() )

+ 17 - 10
server/src/main/java/password/pwm/config/value/EmailValue.java

@@ -21,13 +21,13 @@
 package password.pwm.config.value;
 
 import com.google.gson.reflect.TypeToken;
-
 import password.pwm.bean.EmailItemBean;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.error.PwmOperationalException;
 import password.pwm.util.i18n.LocaleHelper;
 import password.pwm.util.java.JsonUtil;
+import password.pwm.util.java.StringUtil;
 import password.pwm.util.java.XmlElement;
 import password.pwm.util.java.XmlFactory;
 import password.pwm.util.secure.PwmSecurityKey;
@@ -38,6 +38,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.TreeMap;
+import java.util.function.Supplier;
 
 public class EmailValue extends AbstractValue implements StoredValue
 {
@@ -53,6 +54,7 @@ public class EmailValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public EmailValue fromJson( final String input )
             {
                 if ( input == null )
@@ -73,6 +75,7 @@ public class EmailValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public EmailValue fromXmlElement(
                     final PwmSetting pwmSetting,
                     final XmlElement settingElement,
@@ -99,6 +102,7 @@ public class EmailValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -117,11 +121,13 @@ public class EmailValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public Map<String, EmailItemBean> toNativeObject( )
     {
         return Collections.unmodifiableMap( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         final int maxBodyChars = 500_000;
@@ -138,31 +144,31 @@ public class EmailValue extends AbstractValue implements StoredValue
         {
             final String loopLocale = entry.getKey();
             final EmailItemBean emailItemBean = entry.getValue();
+            final Supplier<String> localeMsg = () -> loopLocale.length() > 0 ? " for locale " + loopLocale : "";
 
             if ( emailItemBean.getSubject() == null || emailItemBean.getSubject().length() < 1 )
             {
-                return Collections.singletonList( "subject field is required " + ( loopLocale.length() > 0 ? " for locale " + loopLocale : "" ) );
+                return Collections.singletonList( "subject field is required " + localeMsg.get() );
             }
 
             if ( emailItemBean.getFrom() == null || emailItemBean.getFrom().length() < 1 )
             {
-                return Collections.singletonList( "from field is required" + ( loopLocale.length() > 0 ? " for locale " + loopLocale : "" ) );
+                return Collections.singletonList( "from field is required" + localeMsg.get() );
             }
 
-            if ( emailItemBean.getBodyPlain() == null || emailItemBean.getBodyPlain().length() < 1 )
+            if ( StringUtil.isEmpty( emailItemBean.getBodyPlain() ) )
             {
-                return Collections.singletonList( "plain body field is required" + ( loopLocale.length() > 0 ? " for locale " + loopLocale : "" ) );
+                return Collections.singletonList( "plain body field is required" + localeMsg.get() );
             }
-
-            if ( emailItemBean.getBodyPlain() == null || emailItemBean.getBodyPlain().length() > maxBodyChars )
+            else if ( emailItemBean.getBodyPlain().length() > maxBodyChars )
             {
-                return Collections.singletonList( "plain body field is too large" + ( loopLocale.length() > 0 ? " for locale " + loopLocale : "" )
+                return Collections.singletonList( "plain body field is too large" + localeMsg.get()
                         + ", chars=" + emailItemBean.getBodyPlain().length() + ", max=" + maxBodyChars );
             }
 
-            if ( emailItemBean.getBodyHtml() == null || emailItemBean.getBodyHtml().length() > maxBodyChars )
+            if ( emailItemBean.getBodyHtml() != null && emailItemBean.getBodyHtml().length() > maxBodyChars )
             {
-                return Collections.singletonList( "html body field is too large" + ( loopLocale.length() > 0 ? " for locale " + loopLocale : "" )
+                return Collections.singletonList( "html body field is too large" + localeMsg.get()
                         + ", chars=" + emailItemBean.getBodyHtml().length() + ", max=" + maxBodyChars );
             }
         }
@@ -170,6 +176,7 @@ public class EmailValue extends AbstractValue implements StoredValue
         return Collections.emptyList();
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         if ( values == null )

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

@@ -104,6 +104,7 @@ public class FileValue extends AbstractValue implements StoredValue
         return new StoredValueFactory()
         {
 
+            @Override
             public FileValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey input )
             {
                 final List<XmlElement> valueElements = settingElement.getChildren( StoredConfigXmlSerializer.StoredConfigXmlConstants.XML_ELEMENT_VALUE );
@@ -137,6 +138,7 @@ public class FileValue extends AbstractValue implements StoredValue
                 return new FileValue( values );
             }
 
+            @Override
             public StoredValue fromJson( final String input )
             {
                 throw new IllegalStateException( "not implemented" );
@@ -144,6 +146,7 @@ public class FileValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();

+ 6 - 0
server/src/main/java/password/pwm/config/value/FormValue.java

@@ -53,6 +53,7 @@ public class FormValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public FormValue fromJson( final String input )
             {
                 if ( input == null )
@@ -73,6 +74,7 @@ public class FormValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public FormValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
                     throws PwmOperationalException
             {
@@ -101,6 +103,7 @@ public class FormValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -113,11 +116,13 @@ public class FormValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public List<FormConfiguration> toNativeObject( )
     {
         return Collections.unmodifiableList( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )
@@ -153,6 +158,7 @@ public class FormValue extends AbstractValue implements StoredValue
         return Collections.emptyList();
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         if ( values != null && !values.isEmpty() )

+ 5 - 0
server/src/main/java/password/pwm/config/value/LocalizedStringArrayValue.java

@@ -51,6 +51,7 @@ public class LocalizedStringArrayValue extends AbstractValue implements StoredVa
     {
         return new StoredValueFactory()
         {
+            @Override
             public LocalizedStringArrayValue fromJson( final String input )
             {
                 if ( input == null )
@@ -67,6 +68,7 @@ public class LocalizedStringArrayValue extends AbstractValue implements StoredVa
                 }
             }
 
+            @Override
             public LocalizedStringArrayValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
             {
                 final List<XmlElement> valueElements = settingElement.getChildren( "value" );
@@ -89,6 +91,7 @@ public class LocalizedStringArrayValue extends AbstractValue implements StoredVa
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -109,11 +112,13 @@ public class LocalizedStringArrayValue extends AbstractValue implements StoredVa
         return returnList;
     }
 
+    @Override
     public Map<String, List<String>> toNativeObject( )
     {
         return Collections.unmodifiableMap( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )

+ 5 - 0
server/src/main/java/password/pwm/config/value/LocalizedStringValue.java

@@ -52,6 +52,7 @@ public class LocalizedStringValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public LocalizedStringValue fromJson( final String input )
             {
                 if ( input == null )
@@ -68,6 +69,7 @@ public class LocalizedStringValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public LocalizedStringValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
             {
                 final List<XmlElement> elements = settingElement.getChildren( StoredConfigXmlSerializer.StoredConfigXmlConstants.XML_ELEMENT_VALUE );
@@ -83,6 +85,7 @@ public class LocalizedStringValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -101,11 +104,13 @@ public class LocalizedStringValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public Map<String, String> toNativeObject( )
     {
         return Collections.unmodifiableMap( value );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )

+ 3 - 0
server/src/main/java/password/pwm/config/value/NamedSecretValue.java

@@ -75,6 +75,7 @@ public class NamedSecretValue implements StoredValue
     {
         return new StoredValue.StoredValueFactory()
         {
+            @Override
             public NamedSecretValue fromJson( final String value )
             {
                 try
@@ -92,6 +93,7 @@ public class NamedSecretValue implements StoredValue
                 }
             }
 
+            @Override
             public NamedSecretValue fromXmlElement(
                     final PwmSetting pwmSetting,
                     final XmlElement settingElement,
@@ -160,6 +162,7 @@ public class NamedSecretValue implements StoredValue
         return 0;
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         if ( values == null )

+ 3 - 0
server/src/main/java/password/pwm/config/value/NumericArrayValue.java

@@ -49,6 +49,7 @@ public class NumericArrayValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public NumericArrayValue fromJson( final String value )
             {
                 final long[] longArray = JsonUtil.deserialize( value, long[].class );
@@ -56,6 +57,7 @@ public class NumericArrayValue extends AbstractValue implements StoredValue
                 return new NumericArrayValue( list );
             }
 
+            @Override
             public NumericArrayValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey input )
             {
                 final List<Long> returnList = new ArrayList<>(  );
@@ -96,6 +98,7 @@ public class NumericArrayValue extends AbstractValue implements StoredValue
         return Collections.emptyList();
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         if ( !JavaHelper.isEmpty( values ) )

+ 2 - 0
server/src/main/java/password/pwm/config/value/NumericValue.java

@@ -46,11 +46,13 @@ public class NumericValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public NumericValue fromJson( final String value )
             {
                 return new NumericValue( JsonUtil.deserialize( value, Long.class ) );
             }
 
+            @Override
             public NumericValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey input )
             {
                 final Optional<XmlElement> valueElement = settingElement.getChild( StoredConfigXmlSerializer.StoredConfigXmlConstants.XML_ELEMENT_VALUE );

+ 6 - 0
server/src/main/java/password/pwm/config/value/OptionListValue.java

@@ -50,6 +50,7 @@ public class OptionListValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public OptionListValue fromJson( final String input )
             {
                 if ( input == null )
@@ -70,6 +71,7 @@ public class OptionListValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public OptionListValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
                     throws PwmOperationalException
             {
@@ -88,6 +90,7 @@ public class OptionListValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -100,16 +103,19 @@ public class OptionListValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public Set<String> toNativeObject( )
     {
         return Collections.unmodifiableSet( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         return Collections.emptyList();
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         final StringBuilder sb = new StringBuilder();

+ 3 - 0
server/src/main/java/password/pwm/config/value/PasswordValue.java

@@ -64,6 +64,7 @@ public class PasswordValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public PasswordValue fromJson( final String value )
             {
                 final String strValue = JsonUtil.deserialize( value, String.class );
@@ -82,6 +83,7 @@ public class PasswordValue implements StoredValue
                 return new PasswordValue();
             }
 
+            @Override
             public PasswordValue fromXmlElement(
                     final PwmSetting pwmSetting,
                     final XmlElement settingElement,
@@ -155,6 +157,7 @@ public class PasswordValue implements StoredValue
         return 0;
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         if ( value == null )

+ 4 - 0
server/src/main/java/password/pwm/config/value/PrivateKeyValue.java

@@ -58,6 +58,7 @@ public class PrivateKeyValue extends AbstractValue
     {
         return new StoredValue.StoredValueFactory()
         {
+            @Override
             public PrivateKeyValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
             {
                 if ( settingElement != null && settingElement.getChild( StoredConfigXmlSerializer.StoredConfigXmlConstants.XML_ELEMENT_VALUE  ).isPresent() )
@@ -117,6 +118,7 @@ public class PrivateKeyValue extends AbstractValue
                 return new PrivateKeyValue( null );
             }
 
+            @Override
             public X509CertificateValue fromJson( final String input )
             {
                 return new X509CertificateValue( Collections.emptyList() );
@@ -153,6 +155,7 @@ public class PrivateKeyValue extends AbstractValue
         return 0;
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final XmlElement valueElement = XmlFactory.getFactory().newElement( StoredConfigXmlSerializer.StoredConfigXmlConstants.XML_ELEMENT_VALUE );
@@ -188,6 +191,7 @@ public class PrivateKeyValue extends AbstractValue
         return Collections.singletonList( valueElement );
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         if ( privateKeyCertificate != null )

+ 6 - 0
server/src/main/java/password/pwm/config/value/RemoteWebServiceValue.java

@@ -62,6 +62,7 @@ public class RemoteWebServiceValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public RemoteWebServiceValue fromJson( final String input )
             {
                 if ( input == null )
@@ -82,6 +83,7 @@ public class RemoteWebServiceValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public RemoteWebServiceValue fromXmlElement(
                     final PwmSetting pwmSetting,
                     final XmlElement settingElement,
@@ -113,6 +115,7 @@ public class RemoteWebServiceValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -140,11 +143,13 @@ public class RemoteWebServiceValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public List<RemoteWebServiceConfiguration> toNativeObject( )
     {
         return Collections.unmodifiableList( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )
@@ -226,6 +231,7 @@ public class RemoteWebServiceValue extends AbstractValue implements StoredValue
         return output;
     }
     
+    @Override
     public String toDebugString( final Locale locale )
     {
         return JsonUtil.serialize( this.toDebugJsonObject( locale ) );

+ 6 - 0
server/src/main/java/password/pwm/config/value/StringArrayValue.java

@@ -49,6 +49,7 @@ public class StringArrayValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public StringArrayValue fromJson( final String input )
             {
                 if ( input == null )
@@ -67,6 +68,7 @@ public class StringArrayValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public StringArrayValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
             {
                 final List<XmlElement> valueElements = settingElement.getChildren( StoredConfigXmlSerializer.StoredConfigXmlConstants.XML_ELEMENT_VALUE );
@@ -81,6 +83,7 @@ public class StringArrayValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -93,11 +96,13 @@ public class StringArrayValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public List<String> toNativeObject( )
     {
         return Collections.unmodifiableList( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )
@@ -121,6 +126,7 @@ public class StringArrayValue extends AbstractValue implements StoredValue
         return Collections.emptyList();
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         if ( values != null && !values.isEmpty() )

+ 5 - 0
server/src/main/java/password/pwm/config/value/StringValue.java

@@ -55,12 +55,14 @@ public class StringValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public StringValue fromJson( final String input )
             {
                 final String newValue = JsonUtil.deserialize( input, String.class );
                 return new StringValue( newValue );
             }
 
+            @Override
             public StringValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
             {
                 final Optional<XmlElement> valueElement = settingElement.getChild( StoredConfigXmlSerializer.StoredConfigXmlConstants.XML_ELEMENT_VALUE );
@@ -70,6 +72,7 @@ public class StringValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final XmlElement valueElement = XmlFactory.getFactory().newElement( valueElementName );
@@ -77,11 +80,13 @@ public class StringValue extends AbstractValue implements StoredValue
         return Collections.singletonList( valueElement );
     }
 
+    @Override
     public String toNativeObject( )
     {
         return value;
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         if ( pwmSetting.isRequired() )

+ 6 - 0
server/src/main/java/password/pwm/config/value/UserPermissionValue.java

@@ -72,6 +72,7 @@ public class UserPermissionValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public UserPermissionValue fromJson( final String input )
             {
                 if ( input == null )
@@ -88,6 +89,7 @@ public class UserPermissionValue extends AbstractValue implements StoredValue
                 }
             }
 
+            @Override
             public UserPermissionValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
                     throws PwmOperationalException
             {
@@ -121,6 +123,7 @@ public class UserPermissionValue extends AbstractValue implements StoredValue
         };
     }
 
+    @Override
     public List<XmlElement> toXmlValues( final String valueElementName, final XmlOutputProcessData xmlOutputProcessData )
     {
         final List<XmlElement> returnList = new ArrayList<>();
@@ -133,11 +136,13 @@ public class UserPermissionValue extends AbstractValue implements StoredValue
         return returnList;
     }
 
+    @Override
     public List<UserPermission> toNativeObject( )
     {
         return Collections.unmodifiableList( values );
     }
 
+    @Override
     public List<String> validateValue( final PwmSetting pwmSetting )
     {
         final List<String> returnObj = new ArrayList<>();
@@ -166,6 +171,7 @@ public class UserPermissionValue extends AbstractValue implements StoredValue
         return 2;
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         if ( values != null && !values.isEmpty() )

+ 2 - 0
server/src/main/java/password/pwm/config/value/VerificationMethodValue.java

@@ -124,6 +124,7 @@ public class VerificationMethodValue extends AbstractValue implements StoredValu
     {
         return new StoredValueFactory()
         {
+            @Override
             public VerificationMethodValue fromJson( final String input )
             {
                 if ( input == null )
@@ -137,6 +138,7 @@ public class VerificationMethodValue extends AbstractValue implements StoredValu
                 }
             }
 
+            @Override
             public VerificationMethodValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
                     throws PwmOperationalException
             {

+ 3 - 0
server/src/main/java/password/pwm/config/value/X509CertificateValue.java

@@ -65,6 +65,7 @@ public class X509CertificateValue extends AbstractValue implements StoredValue
     {
         return new StoredValueFactory()
         {
+            @Override
             public X509CertificateValue fromXmlElement( final PwmSetting pwmSetting, final XmlElement settingElement, final PwmSecurityKey key )
             {
                 final List<String> b64certificates = new ArrayList<>();
@@ -78,6 +79,7 @@ public class X509CertificateValue extends AbstractValue implements StoredValue
                 return new X509CertificateValue( Collections.unmodifiableList( b64certificates ) );
             }
 
+            @Override
             public X509CertificateValue fromJson( final String input )
             {
                 return new X509CertificateValue( Collections.emptyList() );
@@ -140,6 +142,7 @@ public class X509CertificateValue extends AbstractValue implements StoredValue
         return Collections.emptyList();
     }
 
+    @Override
     public String toDebugString( final Locale locale )
     {
         final StringBuilder sb = new StringBuilder();

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

@@ -67,6 +67,7 @@ public class ConfigurationChecker implements HealthChecker
 {
     private static final PwmLogger LOGGER = PwmLogger.forClass( ConfigurationChecker.class );
 
+    @Override
     public List<HealthRecord> doHealthCheck( final PwmApplication pwmApplication )
     {
         if ( pwmApplication.getConfig() == null )

+ 5 - 0
server/src/main/java/password/pwm/health/HealthMonitor.java

@@ -98,6 +98,7 @@ public class HealthMonitor implements PwmService
     {
     }
 
+    @Override
     public void init( final PwmApplication pwmApplication ) throws PwmException
     {
         this.pwmApplication = pwmApplication;
@@ -163,6 +164,7 @@ public class HealthMonitor implements PwmService
         return returnStatus;
     }
 
+    @Override
     public STATUS status( )
     {
         return status;
@@ -197,6 +199,7 @@ public class HealthMonitor implements PwmService
         }
     }
 
+    @Override
     public void close( )
     {
         if ( executorService != null )
@@ -216,6 +219,7 @@ public class HealthMonitor implements PwmService
         return new HealthData( Collections.emptySet(), Instant.ofEpochMilli( 0 ) );
     }
 
+    @Override
     public List<HealthRecord> healthCheck( )
     {
         return Collections.emptyList();
@@ -274,6 +278,7 @@ public class HealthMonitor implements PwmService
         LOGGER.trace( () -> "completed health check execution #" + counter, () -> TimeDuration.fromCurrent( startTime ) );
     }
 
+    @Override
     public ServiceInfoBean serviceInfo( )
     {
         return ServiceInfoBean.builder().build();

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

@@ -146,6 +146,7 @@ public class HealthRecord implements Serializable, Comparable<HealthRecord>
                 locale, config ) + " " + this.getDetail( locale, config );
     }
 
+    @Override
     public int compareTo( final HealthRecord otherHealthRecord )
     {
         final int statusCompare = status.compareTo( otherHealthRecord.status );

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

@@ -28,6 +28,7 @@ import java.util.List;
 
 public class JavaChecker implements HealthChecker
 {
+    @Override
     public List<HealthRecord> doHealthCheck( final PwmApplication pwmApplication )
     {
         final List<HealthRecord> records = new ArrayList<>();

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

@@ -87,6 +87,7 @@ public class LDAPHealthChecker implements HealthChecker
     private static final PwmLogger LOGGER = PwmLogger.forClass( LDAPHealthChecker.class );
     private static final String TOPIC = "LDAP";
 
+    @Override
     public List<HealthRecord> doHealthCheck( final PwmApplication pwmApplication )
     {
         final Configuration config = pwmApplication.getConfig();

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

@@ -34,6 +34,7 @@ import java.util.List;
 
 public class LocalDBHealthChecker implements HealthChecker
 {
+    @Override
     public List<HealthRecord> doHealthCheck( final PwmApplication pwmApplication )
     {
         if ( pwmApplication == null )

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

@@ -482,6 +482,7 @@ public class ContextManager implements Serializable
     private class RestartFlagWatcher implements Runnable
     {
 
+        @Override
         public void run( )
         {
             doRestart();

+ 6 - 0
server/src/main/java/password/pwm/http/HttpEventManager.java

@@ -57,6 +57,7 @@ public class HttpEventManager implements
     {
     }
 
+    @Override
     public void sessionCreated( final HttpSessionEvent httpSessionEvent )
     {
         final HttpSession httpSession = httpSessionEvent.getSession();
@@ -79,6 +80,7 @@ public class HttpEventManager implements
         }
     }
 
+    @Override
     public void sessionDestroyed( final HttpSessionEvent httpSessionEvent )
     {
         final HttpSession httpSession = httpSessionEvent.getSession();
@@ -114,6 +116,7 @@ public class HttpEventManager implements
     }
 
 
+    @Override
     public void contextInitialized( final ServletContextEvent servletContextEvent )
     {
         Logger.getLogger( "org.glassfish.jersey" ).setLevel( Level.SEVERE );
@@ -143,6 +146,7 @@ public class HttpEventManager implements
         }
     }
 
+    @Override
     public void contextDestroyed( final ServletContextEvent servletContextEvent )
     {
         try
@@ -157,6 +161,7 @@ public class HttpEventManager implements
     }
 
 
+    @Override
     public void sessionWillPassivate( final HttpSessionEvent event )
     {
         try
@@ -170,6 +175,7 @@ public class HttpEventManager implements
         }
     }
 
+    @Override
     public void sessionDidActivate( final HttpSessionEvent event )
     {
         try

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

@@ -246,6 +246,7 @@ public class PwmResponse extends PwmHttpResponseWrapper
         this.setContentType( contentType );
     }
 
+    @Override
     public void sendRedirect( final String url )
             throws IOException
     {

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

@@ -32,6 +32,7 @@ public class OAuthFilterAuthenticationProvider implements PwmHttpFilterAuthentic
 
     private boolean redirected = false;
 
+    @Override
     public void attemptAuthentication(
             final PwmRequest pwmRequest
     )

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

@@ -56,6 +56,7 @@ public class ActivateUserBean extends PwmSessionBean
     private String profileID;
 
 
+    @Override
     public Type getType( )
     {
         return Type.PUBLIC;

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

@@ -152,6 +152,7 @@ public class ChangePasswordBean extends PwmSessionBean
         this.warnPassed = warnPassed;
     }
 
+    @Override
     public Type getType( )
     {
         return Type.AUTHENTICATED;

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

@@ -47,6 +47,7 @@ public class ConfigGuideBean extends PwmSessionBean
     private boolean useConfiguredCerts = false;
     private FileValue databaseDriver = null;
 
+    @Override
     public Type getType( )
     {
         return Type.PUBLIC;

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

@@ -43,6 +43,7 @@ public class ConfigManagerBean extends PwmSessionBean
     {
     }
 
+    @Override
     public Type getType( )
     {
         return Type.AUTHENTICATED;

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

@@ -41,6 +41,7 @@ public class DeleteAccountBean extends PwmSessionBean
         this.agreementPassed = agreementPassed;
     }
 
+    @Override
     public Type getType( )
     {
         return Type.PUBLIC;

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

@@ -141,6 +141,7 @@ public class ForgottenPasswordBean extends PwmSessionBean
         }
     }
 
+    @Override
     public Type getType( )
     {
         return Type.PUBLIC;

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

@@ -81,6 +81,7 @@ public class GuestRegistrationBean extends PwmSessionBean
         this.formValues = formValues;
     }
 
+    @Override
     public Type getType( )
     {
         return Type.AUTHENTICATED;

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

@@ -42,6 +42,7 @@ public class LoginServletBean extends PwmSessionBean
         this.nextUrl = nextUrl;
     }
 
+    @Override
     public Type getType( )
     {
         return Type.PUBLIC;

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

@@ -137,6 +137,7 @@ public class SetupOtpBean extends PwmSessionBean
         this.written = written;
     }
 
+    @Override
     public Type getType( )
     {
         return Type.AUTHENTICATED;

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

@@ -45,6 +45,7 @@ public class SetupResponsesBean extends PwmSessionBean
     private Locale userLocale;
     private boolean initialized;
 
+    @Override
     public Type getType( )
     {
         return Type.AUTHENTICATED;

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

@@ -43,6 +43,7 @@ public class ShortcutsBean extends PwmSessionBean
         this.visibleItems = visibleItems;
     }
 
+    @Override
     public Type getType( )
     {
         return Type.AUTHENTICATED;

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

@@ -60,6 +60,7 @@ public class UpdateProfileBean extends PwmSessionBean
     @SerializedName( "ts" )
     private boolean tokenSent;
 
+    @Override
     public Type getType( )
     {
         return Type.AUTHENTICATED;

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

@@ -63,6 +63,7 @@ public class AuthenticationFilter extends AbstractPwmFilter
 {
     private static final PwmLogger LOGGER = PwmLogger.getLogger( AuthenticationFilter.class.getName() );
 
+    @Override
     public void processFilter(
             final PwmApplicationMode mode,
             final PwmRequest pwmRequest,

+ 3 - 0
server/src/main/java/password/pwm/http/filter/AuthorizationFilter.java

@@ -44,6 +44,7 @@ public class AuthorizationFilter extends AbstractPwmFilter
 
     private static final PwmLogger LOGGER = PwmLogger.forClass( AuthenticationFilter.class );
 
+    @Override
     public void init( final FilterConfig filterConfig )
             throws ServletException
     {
@@ -55,6 +56,7 @@ public class AuthorizationFilter extends AbstractPwmFilter
         return !pwmURL.isRestService();
     }
 
+    @Override
     public void processFilter(
             final PwmApplicationMode mode,
             final PwmRequest pwmRequest,
@@ -94,6 +96,7 @@ public class AuthorizationFilter extends AbstractPwmFilter
         pwmRequest.respondWithError( PwmError.ERROR_UNAUTHORIZED.toInfo() );
     }
 
+    @Override
     public void destroy( )
     {
     }

+ 2 - 0
server/src/main/java/password/pwm/http/filter/GZIPFilter.java

@@ -48,6 +48,7 @@ public class GZIPFilter implements Filter
     private final CompressingFilter compressingFilter = new CompressingFilter();
     private boolean enabled = false;
 
+    @Override
     public void init( final FilterConfig filterConfig )
             throws ServletException
     {
@@ -65,6 +66,7 @@ public class GZIPFilter implements Filter
         compressingFilter.init( filterConfig );
     }
 
+    @Override
     public void destroy( )
     {
         compressingFilter.destroy();

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

@@ -90,6 +90,7 @@ public class RequestInitializationFilter implements Filter
     {
     }
 
+    @Override
     public void doFilter(
             final ServletRequest servletRequest,
             final ServletResponse servletResponse,

+ 2 - 0
server/src/main/java/password/pwm/http/filter/SessionFilter.java

@@ -79,6 +79,7 @@ public class SessionFilter extends AbstractPwmFilter
         return !pwmURL.isRestService();
     }
 
+    @Override
     public void processFilter(
             final PwmApplicationMode mode,
             final PwmRequest pwmRequest,
@@ -276,6 +277,7 @@ public class SessionFilter extends AbstractPwmFilter
         return ProcessStatus.Continue;
     }
 
+    @Override
     public void destroy( )
     {
     }

+ 2 - 0
server/src/main/java/password/pwm/http/servlet/AbstractPwmServlet.java

@@ -55,6 +55,7 @@ public abstract class AbstractPwmServlet extends HttpServlet implements PwmServl
 
     private static final PwmLogger LOGGER = PwmLogger.forClass( AbstractPwmServlet.class );
 
+    @Override
     public void doGet(
             final HttpServletRequest req,
             final HttpServletResponse resp
@@ -64,6 +65,7 @@ public abstract class AbstractPwmServlet extends HttpServlet implements PwmServl
         this.handleRequest( req, resp, HttpMethod.GET );
     }
 
+    @Override
     public void doPost(
             final HttpServletRequest req,
             final HttpServletResponse resp

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

@@ -118,6 +118,7 @@ public class ClientApiServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

+ 4 - 0
server/src/main/java/password/pwm/http/servlet/ControlledPwmServlet.java

@@ -50,6 +50,7 @@ public abstract class ControlledPwmServlet extends AbstractPwmServlet implements
 
     private final Map<String, Method> actionMethodCache = createMethodCache();
 
+    @Override
     public String servletUriRemainder( final PwmRequest pwmRequest, final String command ) throws PwmUnrecoverableException
     {
         String uri = pwmRequest.getURLwithoutQueryString();
@@ -67,6 +68,7 @@ public abstract class ControlledPwmServlet extends AbstractPwmServlet implements
         return uri;
     }
 
+    @Override
     protected PwmServletDefinition getServletDefinition( )
     {
         for ( final PwmServletDefinition pwmServletDefinition : PwmServletDefinition.values() )
@@ -82,6 +84,7 @@ public abstract class ControlledPwmServlet extends AbstractPwmServlet implements
 
     public abstract Class<? extends ProcessAction> getProcessActionsClass( );
 
+    @Override
     protected ProcessAction readProcessAction( final PwmRequest request )
             throws PwmUnrecoverableException
     {
@@ -148,6 +151,7 @@ public abstract class ControlledPwmServlet extends AbstractPwmServlet implements
         throw new PwmUnrecoverableException( new ErrorInformation( PwmError.ERROR_INTERNAL, msg ) );
     }
 
+    @Override
     protected void processAction( final PwmRequest pwmRequest )
             throws ServletException, IOException, ChaiUnavailableException, PwmUnrecoverableException
     {

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

@@ -82,6 +82,7 @@ public class DeleteAccountServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

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

@@ -76,12 +76,14 @@ public class ForgottenUsernameServlet extends AbstractPwmServlet
     {
         search,;
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( HttpMethod.POST );
         }
     }
 
+    @Override
     protected ForgottenUsernameAction readProcessAction( final PwmRequest request )
             throws PwmUnrecoverableException
     {
@@ -95,6 +97,7 @@ public class ForgottenUsernameServlet extends AbstractPwmServlet
         }
     }
 
+    @Override
     protected void processAction( final PwmRequest pwmRequest )
             throws ServletException, IOException, PwmUnrecoverableException
     {

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

@@ -60,6 +60,7 @@ public class FullPageHealthServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

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

@@ -111,12 +111,14 @@ public class GuestRegistrationServlet extends AbstractPwmServlet
         update,
         selectPage,;
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( HttpMethod.POST );
         }
     }
 
+    @Override
     protected GuestRegistrationAction readProcessAction( final PwmRequest request )
             throws PwmUnrecoverableException
     {
@@ -131,6 +133,7 @@ public class GuestRegistrationServlet extends AbstractPwmServlet
     }
 
 
+    @Override
     protected void processAction( final PwmRequest pwmRequest )
             throws ServletException, ChaiUnavailableException, IOException, PwmUnrecoverableException
     {

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

@@ -84,6 +84,7 @@ public class LoginServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

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

@@ -107,6 +107,7 @@ public class LogoutServlet extends ControlledPwmServlet
         return ProcessStatus.Halt;
     }
 
+    @Override
     public void nextStep(
             final PwmRequest pwmRequest
     )

+ 2 - 0
server/src/main/java/password/pwm/http/servlet/SetupOtpServlet.java

@@ -98,12 +98,14 @@ public class SetupOtpServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );
         }
     }
 
+    @Override
     public Class<? extends ProcessAction> getProcessActionsClass( )
     {
         return SetupOtpAction.class;

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

@@ -106,6 +106,7 @@ public class SetupResponsesServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

+ 3 - 0
server/src/main/java/password/pwm/http/servlet/ShortcutServlet.java

@@ -70,12 +70,14 @@ public class ShortcutServlet extends AbstractPwmServlet
     {
         selectShortcut,;
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( HttpMethod.GET );
         }
     }
 
+    @Override
     protected ShortcutAction readProcessAction( final PwmRequest request )
             throws PwmUnrecoverableException
     {
@@ -89,6 +91,7 @@ public class ShortcutServlet extends AbstractPwmServlet
         }
     }
 
+    @Override
     protected void processAction( final PwmRequest pwmRequest )
             throws ServletException, IOException, ChaiUnavailableException, PwmUnrecoverableException
     {

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

@@ -67,6 +67,7 @@ public class AccountInformationServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

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

@@ -109,6 +109,7 @@ public class ActivateUserServlet extends ControlledPwmServlet
             this.method = Collections.unmodifiableList( Arrays.asList( method ) );
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return method;

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

@@ -142,6 +142,7 @@ public class AdminServlet extends ControlledPwmServlet
             this.method = Collections.unmodifiableList( Arrays.asList( method ) );
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return method;

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

@@ -106,6 +106,7 @@ public abstract class ChangePasswordServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );
@@ -445,6 +446,7 @@ public abstract class ChangePasswordServlet extends ControlledPwmServlet
         return ProcessStatus.Halt;
     }
 
+    @Override
     public void nextStep(
             final PwmRequest pwmRequest
     )

+ 1 - 0
server/src/main/java/password/pwm/http/servlet/configeditor/ConfigEditorServlet.java

@@ -154,6 +154,7 @@ public class ConfigEditorServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

+ 1 - 0
server/src/main/java/password/pwm/http/servlet/configguide/ConfigGuideServlet.java

@@ -122,6 +122,7 @@ public class ConfigGuideServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

+ 5 - 0
server/src/main/java/password/pwm/http/servlet/configguide/GuideStep.java

@@ -123,6 +123,7 @@ public enum GuideStep
 
     static class LdapSchemeVisibilityCheck implements VisibilityCheck
     {
+        @Override
         public boolean visible( final ConfigGuideBean configGuideBean )
         {
             try
@@ -139,6 +140,7 @@ public enum GuideStep
 
     static class DbVisibilityCheck implements VisibilityCheck
     {
+        @Override
         public boolean visible( final ConfigGuideBean configGuideBean )
         {
             try
@@ -155,6 +157,7 @@ public enum GuideStep
 
     static class EulaVisibilityCheck implements VisibilityCheck
     {
+        @Override
         public boolean visible( final ConfigGuideBean configGuideBean )
         {
             return PwmConstants.ENABLE_EULA_DISPLAY;
@@ -163,6 +166,7 @@ public enum GuideStep
 
     static class TelemetryVisibilityCheck implements VisibilityCheck
     {
+        @Override
         public boolean visible( final ConfigGuideBean configGuideBean )
         {
             return !PwmSetting.PUBLISH_STATS_ENABLE.isHidden()
@@ -172,6 +176,7 @@ public enum GuideStep
 
     static class NeverVisible implements VisibilityCheck
     {
+        @Override
         public boolean visible( final ConfigGuideBean configGuideBean )
         {
             return false;

+ 3 - 0
server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerCertificatesServlet.java

@@ -75,12 +75,14 @@ public class ConfigManagerCertificatesServlet extends AbstractPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );
         }
     }
 
+    @Override
     protected ConfigManagerCertificateAction readProcessAction( final PwmRequest request )
             throws PwmUnrecoverableException
     {
@@ -94,6 +96,7 @@ public class ConfigManagerCertificatesServlet extends AbstractPwmServlet
         }
     }
 
+    @Override
     protected void processAction( final PwmRequest pwmRequest )
             throws ServletException, IOException, PwmUnrecoverableException
     {

+ 3 - 0
server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerLocalDBServlet.java

@@ -82,12 +82,14 @@ public class ConfigManagerLocalDBServlet extends AbstractPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );
         }
     }
 
+    @Override
     protected ConfigManagerAction readProcessAction( final PwmRequest request )
             throws PwmUnrecoverableException
     {
@@ -101,6 +103,7 @@ public class ConfigManagerLocalDBServlet extends AbstractPwmServlet
         }
     }
 
+    @Override
     protected void processAction( final PwmRequest pwmRequest )
             throws ServletException, IOException, PwmUnrecoverableException
     {

+ 1 - 0
server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerLoginServlet.java

@@ -92,6 +92,7 @@ public class ConfigManagerLoginServlet extends AbstractPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

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

@@ -104,12 +104,14 @@ public class ConfigManagerServlet extends AbstractPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );
         }
     }
 
+    @Override
     protected ConfigManagerAction readProcessAction( final PwmRequest request )
             throws PwmUnrecoverableException
     {
@@ -135,6 +137,7 @@ public class ConfigManagerServlet extends AbstractPwmServlet
         }
     }
 
+    @Override
     protected void processAction( final PwmRequest pwmRequest )
             throws ServletException, IOException, ChaiUnavailableException, PwmUnrecoverableException
     {

+ 3 - 0
server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerWordlistServlet.java

@@ -81,12 +81,14 @@ public class ConfigManagerWordlistServlet extends AbstractPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );
         }
     }
 
+    @Override
     protected ConfigManagerAction readProcessAction( final PwmRequest request )
             throws PwmUnrecoverableException
     {
@@ -100,6 +102,7 @@ public class ConfigManagerWordlistServlet extends AbstractPwmServlet
         }
     }
 
+    @Override
     protected void processAction( final PwmRequest pwmRequest )
             throws ServletException, IOException, PwmUnrecoverableException
     {

+ 1 - 0
server/src/main/java/password/pwm/http/servlet/configmanager/DebugItemGenerator.java

@@ -712,6 +712,7 @@ public class DebugItemGenerator
             return "recentUserDebugData.json";
         }
 
+        @Override
         public void outputItem( final DebugItemInput debugItemInput, final OutputStream outputStream ) throws Exception
         {
             final PwmApplication pwmApplication = debugItemInput.getPwmApplication();

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

@@ -147,6 +147,7 @@ public class ForgottenPasswordServlet extends ControlledPwmServlet
             this.method = Collections.unmodifiableList( Arrays.asList( method ) );
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return method;

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

@@ -91,6 +91,7 @@ class ForgottenPasswordStageProcessor
 
     private static class StageProcessor1 implements  NextStageProcessor
     {
+        @Override
         public Optional<ForgottenPasswordStage> nextStage( final ForgottenPasswordStateMachine stateMachine )
         {
             final CommonValues commonValues = stateMachine.getCommonValues();
@@ -130,6 +131,7 @@ class ForgottenPasswordStageProcessor
     private static class StageProcessor2 implements NextStageProcessor
     {
 
+        @Override
         public Optional<ForgottenPasswordStage> nextStage( final ForgottenPasswordStateMachine stateMachine )
                 throws PwmUnrecoverableException
         {
@@ -179,6 +181,7 @@ class ForgottenPasswordStageProcessor
 
     static class StageProcessor3 implements NextStageProcessor
     {
+        @Override
         public Optional<ForgottenPasswordStage> nextStage( final ForgottenPasswordStateMachine stateMachine )
         {
             final ForgottenPasswordBean forgottenPasswordBean = stateMachine.getForgottenPasswordBean();
@@ -212,6 +215,7 @@ class ForgottenPasswordStageProcessor
 
     static class StageProcessor4 implements NextStageProcessor
     {
+        @Override
         public Optional<ForgottenPasswordStage> nextStage( final ForgottenPasswordStateMachine stateMachine )
                 throws PwmUnrecoverableException
         {
@@ -273,6 +277,7 @@ class ForgottenPasswordStageProcessor
 
     static class StageProcessor5 implements NextStageProcessor
     {
+        @Override
         public Optional<ForgottenPasswordStage> nextStage( final ForgottenPasswordStateMachine stateMachine )
                 throws PwmUnrecoverableException
         {
@@ -312,6 +317,7 @@ class ForgottenPasswordStageProcessor
 
     static class StageProcessor6 implements NextStageProcessor
     {
+        @Override
         public Optional<ForgottenPasswordStage> nextStage( final ForgottenPasswordStateMachine stateMachine )
                 throws PwmUnrecoverableException
         {
@@ -356,6 +362,7 @@ class ForgottenPasswordStageProcessor
 
     static class StageProcessor7 implements NextStageProcessor
     {
+        @Override
         public Optional<ForgottenPasswordStage> nextStage( final ForgottenPasswordStateMachine stateMachine )
                 throws PwmUnrecoverableException
         {

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

@@ -472,6 +472,7 @@ public class ForgottenPasswordStateMachine
 
         static class OTPVerificationHandler implements StageHandler
         {
+            @Override
             public void applyForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine, final Map<String, String> formValues )
                     throws PwmUnrecoverableException
             {
@@ -524,6 +525,7 @@ public class ForgottenPasswordStateMachine
                 }
             }
 
+            @Override
             public PresentableForm generateForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine ) throws PwmUnrecoverableException
             {
                 final CommonValues commonValues = forgottenPasswordStateMachine.getCommonValues();
@@ -569,6 +571,7 @@ public class ForgottenPasswordStateMachine
 
         static class TokenVerificationHandler implements StageHandler
         {
+            @Override
             public void applyForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine, final Map<String, String> formValues ) throws PwmUnrecoverableException
             {
                 final CommonValues commonValues = forgottenPasswordStateMachine.getCommonValues();
@@ -621,6 +624,7 @@ public class ForgottenPasswordStateMachine
                 }
             }
 
+            @Override
             public PresentableForm generateForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine )
             {
                 final CommonValues commonValues = forgottenPasswordStateMachine.getCommonValues();
@@ -654,6 +658,7 @@ public class ForgottenPasswordStateMachine
         static class ChallengeResponseHandler implements StageHandler
         {
 
+            @Override
             public void applyForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine, final Map<String, String> formValues )
                     throws PwmUnrecoverableException
             {
@@ -697,6 +702,7 @@ public class ForgottenPasswordStateMachine
                 }
             }
 
+            @Override
             public PresentableForm generateForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine )
             {
                 final CommonValues commonValues = forgottenPasswordStateMachine.getCommonValues();
@@ -726,6 +732,7 @@ public class ForgottenPasswordStateMachine
 
         static class AttributeVerificationHandler implements StageHandler
         {
+            @Override
             public void applyForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine, final Map<String, String> formData )
                     throws PwmUnrecoverableException
             {
@@ -824,6 +831,7 @@ public class ForgottenPasswordStateMachine
                 }
             }
 
+            @Override
             public PresentableForm generateForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine )
             {
                 final CommonValues commonValues = forgottenPasswordStateMachine.getCommonValues();
@@ -868,6 +876,7 @@ public class ForgottenPasswordStateMachine
             }
         }
 
+        @Override
         public PresentableForm generateForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine )
         {
             final CommonValues commonValues = forgottenPasswordStateMachine.getCommonValues();
@@ -902,6 +911,7 @@ public class ForgottenPasswordStateMachine
 
     static class IdentificationStageHandler implements StageHandler
     {
+        @Override
         public PresentableForm generateForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine )
                 throws PwmUnrecoverableException
         {
@@ -917,6 +927,7 @@ public class ForgottenPasswordStateMachine
                     .build();
         }
 
+        @Override
         public void applyForm( final ForgottenPasswordStateMachine forgottenPasswordStateMachine, final Map<String, String> values )
                 throws PwmUnrecoverableException
         {

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

@@ -155,12 +155,14 @@ public class HelpdeskServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );
         }
     }
 
+    @Override
     public Class<? extends ProcessAction> getProcessActionsClass( )
     {
         return HelpdeskAction.class;

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

@@ -125,6 +125,7 @@ public class NewUserServlet extends ControlledPwmServlet
             this.method = Collections.unmodifiableList( Arrays.asList( method ) );
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return method;

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

@@ -84,6 +84,7 @@ public abstract class PeopleSearchServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );

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

@@ -38,26 +38,31 @@ class MemoryFileResource implements FileResource
         this.lastModified = lastModified;
     }
 
+    @Override
     public InputStream getInputStream( ) throws IOException
     {
         return contents.newByteArrayInputStream();
     }
 
+    @Override
     public long length( )
     {
         return contents.size();
     }
 
+    @Override
     public long lastModified( )
     {
         return lastModified;
     }
 
+    @Override
     public boolean exists( )
     {
         return true;
     }
 
+    @Override
     public String getName( )
     {
         return name;

+ 5 - 0
server/src/main/java/password/pwm/http/servlet/resource/RealFileResource.java

@@ -34,26 +34,31 @@ class RealFileResource implements FileResource
         this.realFile = realFile;
     }
 
+    @Override
     public InputStream getInputStream( ) throws IOException
     {
         return new FileInputStream( realFile );
     }
 
+    @Override
     public long length( )
     {
         return realFile.length();
     }
 
+    @Override
     public long lastModified( )
     {
         return realFile.lastModified();
     }
 
+    @Override
     public boolean exists( )
     {
         return realFile.exists();
     }
 
+    @Override
     public String getName( )
     {
         return realFile.getAbsolutePath();

+ 5 - 0
server/src/main/java/password/pwm/http/servlet/resource/ZipFileResource.java

@@ -39,27 +39,32 @@ class ZipFileResource implements FileResource
         this.zipEntry = zipEntry;
     }
 
+    @Override
     public InputStream getInputStream( )
             throws IOException
     {
         return zipFile.getInputStream( zipEntry );
     }
 
+    @Override
     public long length( )
     {
         return zipEntry.getSize();
     }
 
+    @Override
     public long lastModified( )
     {
         return zipEntry.getTime();
     }
 
+    @Override
     public boolean exists( )
     {
         return zipEntry != null && zipFile != null;
     }
 
+    @Override
     public String getName( )
     {
         return zipFile.getName() + ":" + zipEntry.getName();

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

@@ -119,6 +119,7 @@ public class UpdateProfileServlet extends ControlledPwmServlet
             this.method = method;
         }
 
+        @Override
         public Collection<HttpMethod> permittedMethods( )
         {
             return Collections.singletonList( method );
@@ -329,6 +330,7 @@ public class UpdateProfileServlet extends ControlledPwmServlet
         return ProcessStatus.Continue;
     }
 
+    @Override
     protected void nextStep( final PwmRequest pwmRequest )
             throws IOException, ServletException, PwmUnrecoverableException
     {

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

@@ -122,6 +122,7 @@ class CryptoCookieBeanImpl implements SessionBeanProvider
     }
 
 
+    @Override
     public void saveSessionBeans( final PwmRequest pwmRequest )
     {
         if ( pwmRequest == null || pwmRequest.getPwmResponse().isCommitted() )

+ 2 - 0
server/src/main/java/password/pwm/http/state/CryptoRequestBeanImpl.java

@@ -63,6 +63,7 @@ public class CryptoRequestBeanImpl implements SessionBeanProvider
         return newBean;
     }
 
+    @Override
     public void saveSessionBeans( final PwmRequest pwmRequest )
     {
     }
@@ -84,6 +85,7 @@ public class CryptoRequestBeanImpl implements SessionBeanProvider
         return secureService.encryptObjectToString( bean );
     }
 
+    @Override
     public <E extends PwmSessionBean> void clearSessionBean( final PwmRequest pwmRequest, final Class<E> userBeanClass ) throws PwmUnrecoverableException
     {
         final Map<Class<E>, E> cachedMap = getBeanMap( pwmRequest );

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

@@ -110,6 +110,7 @@ public class DisplayTag extends PwmAbstractTag
         this.bundle = bundle;
     }
 
+    @Override
     public int doEndTag( )
             throws javax.servlet.jsp.JspTagException
     {

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

@@ -44,6 +44,7 @@ public class ErrorMessageTag extends PwmAbstractTag
 
     private static final PwmLogger LOGGER = PwmLogger.forClass( ErrorMessageTag.class );
 
+    @Override
     public int doEndTag( )
             throws javax.servlet.jsp.JspTagException
     {

+ 22 - 0
server/src/main/java/password/pwm/http/tag/PasswordRequirementsTag.java

@@ -119,6 +119,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class CaseSensitiveRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             if ( policyValues.getRuleHelper().readBooleanValue( PwmPasswordRule.CaseSensitive ) )
@@ -134,6 +135,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MinLengthRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MinimumLength );
@@ -156,6 +158,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MaxLengthRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MaximumLength );
@@ -169,6 +172,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MinAlphaRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MinimumAlpha );
@@ -182,6 +186,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MaxAlphaRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MaximumAlpha );
@@ -195,6 +200,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class NumericCharsRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final PasswordRuleReaderHelper ruleHelper = policyValues.getRuleHelper();
@@ -233,6 +239,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class SpecialCharsRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final PasswordRuleReaderHelper ruleHelper = policyValues.getRuleHelper();
@@ -271,6 +278,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MaximumRepeatRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MaximumRepeat );
@@ -284,6 +292,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MaximumSequentialRepeatRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MaximumSequentialRepeat );
@@ -297,6 +306,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MinimumLowerRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MinimumLowerCase );
@@ -310,6 +320,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MaximumLowerRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MaximumLowerCase );
@@ -323,6 +334,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MinimumUpperRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MinimumUpperCase );
@@ -336,6 +348,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MaximumUpperRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MaximumUpperCase );
@@ -349,6 +362,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MinimumUniqueRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MinimumUnique );
@@ -362,6 +376,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class DisallowedValuesRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final List<String> setValue = policyValues.getRuleHelper().getDisallowedValues();
@@ -383,6 +398,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class WordlistRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             if ( policyValues.getRuleHelper().readBooleanValue( PwmPasswordRule.EnableWordlist ) )
@@ -395,6 +411,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class DisallowedAttributesRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final List<String> setValue = policyValues.getRuleHelper().getDisallowedAttributes();
@@ -409,6 +426,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MaximumOldCharsRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MaximumOldChars );
@@ -422,6 +440,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class MinimumLifetimeRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final int value = policyValues.getRuleHelper().readIntValue( PwmPasswordRule.MinimumLifetime );
@@ -452,6 +471,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class ADRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             final ADPolicyComplexity adPolicyLevel = policyValues.getRuleHelper().getADComplexityLevel();
@@ -471,6 +491,7 @@ public class PasswordRequirementsTag extends TagSupport
 
     private static class UniqueRequiredRuleTextGenerator implements RuleTextGenerator
     {
+        @Override
         public List<String> generate( final PolicyValues policyValues )
         {
             if ( policyValues.getRuleHelper().readBooleanValue( PwmPasswordRule.UniqueRequired ) )
@@ -541,6 +562,7 @@ public class PasswordRequirementsTag extends TagSupport
         this.form = form;
     }
 
+    @Override
     public int doEndTag( )
             throws javax.servlet.jsp.JspTagException
     {

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

@@ -27,6 +27,7 @@ import javax.servlet.jsp.tagext.TagSupport;
 public class PwmAutofocusTag extends TagSupport
 {
 
+    @Override
     public int doEndTag( )
             throws javax.servlet.jsp.JspTagException
     {

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

@@ -27,6 +27,7 @@ import javax.servlet.jsp.tagext.TagSupport;
 public class PwmContextTag extends TagSupport
 {
 
+    @Override
     public int doEndTag( )
             throws javax.servlet.jsp.JspTagException
     {

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