Browse Source

Merge remote-tracking branch 'origin/master' into update-jersey

James Albright 9 năm trước cách đây
mục cha
commit
1793f22979
100 tập tin đã thay đổi với 786 bổ sung236 xóa
  1. 2 2
      LICENSE
  2. 67 1
      pom.xml
  3. 13 3
      src/main/java/password/pwm/AppProperty.java
  4. 2 2
      src/main/java/password/pwm/Permission.java
  5. 129 2
      src/main/java/password/pwm/PwmAboutProperty.java
  6. 6 14
      src/main/java/password/pwm/PwmApplication.java
  7. 53 0
      src/main/java/password/pwm/PwmApplicationMode.java
  8. 4 3
      src/main/java/password/pwm/PwmConstants.java
  9. 10 9
      src/main/java/password/pwm/PwmEnvironment.java
  10. 2 2
      src/main/java/password/pwm/RecoveryVerificationMethod.java
  11. 4 4
      src/main/java/password/pwm/Validator.java
  12. 9 4
      src/main/java/password/pwm/VersionChecker.java
  13. 2 2
      src/main/java/password/pwm/bean/EmailItemBean.java
  14. 27 5
      src/main/java/password/pwm/bean/FormNonce.java
  15. 2 2
      src/main/java/password/pwm/bean/LocalSessionStateBean.java
  16. 2 2
      src/main/java/password/pwm/bean/LoginInfoBean.java
  17. 2 2
      src/main/java/password/pwm/bean/PasswordStatus.java
  18. 2 2
      src/main/java/password/pwm/bean/RemoteVerificationRequestBean.java
  19. 2 2
      src/main/java/password/pwm/bean/RemoteVerificationResponseBean.java
  20. 2 2
      src/main/java/password/pwm/bean/ResponseInfoBean.java
  21. 2 2
      src/main/java/password/pwm/bean/SessionLabel.java
  22. 2 2
      src/main/java/password/pwm/bean/SmsItemBean.java
  23. 2 2
      src/main/java/password/pwm/bean/StatsPublishBean.java
  24. 22 0
      src/main/java/password/pwm/bean/TokenVerificationProgress.java
  25. 4 3
      src/main/java/password/pwm/bean/UserIdentity.java
  26. 2 2
      src/main/java/password/pwm/bean/UserInfoBean.java
  27. 2 2
      src/main/java/password/pwm/bean/pub/PublicUserInfoBean.java
  28. 22 0
      src/main/java/password/pwm/bean/pub/PublishedBean.java
  29. 2 2
      src/main/java/password/pwm/bean/pub/SessionStateInfoBean.java
  30. 2 2
      src/main/java/password/pwm/config/ActionConfiguration.java
  31. 2 2
      src/main/java/password/pwm/config/ChallengeItemConfiguration.java
  32. 2 2
      src/main/java/password/pwm/config/Configuration.java
  33. 2 2
      src/main/java/password/pwm/config/FormConfiguration.java
  34. 2 2
      src/main/java/password/pwm/config/FormUtility.java
  35. 9 4
      src/main/java/password/pwm/config/LDAPPermissionInfo.java
  36. 7 2
      src/main/java/password/pwm/config/PwmSetting.java
  37. 6 3
      src/main/java/password/pwm/config/PwmSettingCategory.java
  38. 5 3
      src/main/java/password/pwm/config/PwmSettingFlag.java
  39. 22 0
      src/main/java/password/pwm/config/PwmSettingProperty.java
  40. 2 2
      src/main/java/password/pwm/config/PwmSettingSyntax.java
  41. 2 2
      src/main/java/password/pwm/config/PwmSettingTemplate.java
  42. 2 3
      src/main/java/password/pwm/config/PwmSettingTemplateSet.java
  43. 2 2
      src/main/java/password/pwm/config/PwmSettingXml.java
  44. 2 2
      src/main/java/password/pwm/config/SettingReader.java
  45. 2 2
      src/main/java/password/pwm/config/SettingUIFunction.java
  46. 2 2
      src/main/java/password/pwm/config/ShortcutItem.java
  47. 2 2
      src/main/java/password/pwm/config/StoredValue.java
  48. 2 2
      src/main/java/password/pwm/config/UserPermission.java
  49. 2 2
      src/main/java/password/pwm/config/function/AbstractUriCertImportFunction.java
  50. 2 2
      src/main/java/password/pwm/config/function/HttpsCertParseFunction.java
  51. 2 2
      src/main/java/password/pwm/config/function/LdapCertImportFunction.java
  52. 2 2
      src/main/java/password/pwm/config/function/NAAFCertImportFunction.java
  53. 2 2
      src/main/java/password/pwm/config/function/OAuthCertImportFunction.java
  54. 2 2
      src/main/java/password/pwm/config/function/SyslogCertImportFunction.java
  55. 2 2
      src/main/java/password/pwm/config/function/UserMatchViewerFunction.java
  56. 2 2
      src/main/java/password/pwm/config/option/ADPolicyComplexity.java
  57. 2 2
      src/main/java/password/pwm/config/option/ApplicationPage.java
  58. 2 2
      src/main/java/password/pwm/config/option/ConfigurationOption.java
  59. 2 2
      src/main/java/password/pwm/config/option/DataStorageMethod.java
  60. 2 2
      src/main/java/password/pwm/config/option/DuplicateMode.java
  61. 2 2
      src/main/java/password/pwm/config/option/ForceSetupPolicy.java
  62. 2 2
      src/main/java/password/pwm/config/option/HelpdeskClearResponseMode.java
  63. 2 2
      src/main/java/password/pwm/config/option/HelpdeskUIMode.java
  64. 2 2
      src/main/java/password/pwm/config/option/IntruderStorageMethod.java
  65. 2 2
      src/main/java/password/pwm/config/option/MessageSendMethod.java
  66. 2 2
      src/main/java/password/pwm/config/option/OTPStorageFormat.java
  67. 2 2
      src/main/java/password/pwm/config/option/PasswordSyncCheckMode.java
  68. 2 2
      src/main/java/password/pwm/config/option/RecoveryAction.java
  69. 2 2
      src/main/java/password/pwm/config/option/RecoveryVerificationMethods.java
  70. 2 2
      src/main/java/password/pwm/config/option/RequireCurrentPasswordMode.java
  71. 2 2
      src/main/java/password/pwm/config/option/SelectableContextMode.java
  72. 22 0
      src/main/java/password/pwm/config/option/SessionBeanMode.java
  73. 2 2
      src/main/java/password/pwm/config/option/SessionVerificationMode.java
  74. 2 2
      src/main/java/password/pwm/config/option/TLSVersion.java
  75. 2 2
      src/main/java/password/pwm/config/option/TokenStorageMethod.java
  76. 2 2
      src/main/java/password/pwm/config/option/UserEventStorageMethod.java
  77. 2 2
      src/main/java/password/pwm/config/option/ViewStatusFields.java
  78. 20 2
      src/main/java/password/pwm/config/profile/AbstractProfile.java
  79. 2 2
      src/main/java/password/pwm/config/profile/ChallengeProfile.java
  80. 3 14
      src/main/java/password/pwm/config/profile/ForgottenPasswordProfile.java
  81. 18 6
      src/main/java/password/pwm/config/profile/HelpdeskProfile.java
  82. 2 2
      src/main/java/password/pwm/config/profile/LdapProfile.java
  83. 2 2
      src/main/java/password/pwm/config/profile/NewUserProfile.java
  84. 2 2
      src/main/java/password/pwm/config/profile/Profile.java
  85. 2 2
      src/main/java/password/pwm/config/profile/ProfileType.java
  86. 2 2
      src/main/java/password/pwm/config/profile/ProfileUtility.java
  87. 2 2
      src/main/java/password/pwm/config/profile/PwmPasswordPolicy.java
  88. 2 2
      src/main/java/password/pwm/config/profile/PwmPasswordRule.java
  89. 22 0
      src/main/java/password/pwm/config/profile/UpdateAttributesProfile.java
  90. 2 3
      src/main/java/password/pwm/config/stored/ConfigChangeLog.java
  91. 2 3
      src/main/java/password/pwm/config/stored/ConfigChangeLogImpl.java
  92. 22 0
      src/main/java/password/pwm/config/stored/ConfigurationProperty.java
  93. 10 9
      src/main/java/password/pwm/config/stored/ConfigurationReader.java
  94. 2 3
      src/main/java/password/pwm/config/stored/NGStorageEngineImpl.java
  95. 22 0
      src/main/java/password/pwm/config/stored/NGStoredConfiguration.java
  96. 22 0
      src/main/java/password/pwm/config/stored/NGStoredConfigurationFactory.java
  97. 2 3
      src/main/java/password/pwm/config/stored/StorageEngine.java
  98. 22 0
      src/main/java/password/pwm/config/stored/StoredConfigReference.java
  99. 22 0
      src/main/java/password/pwm/config/stored/StoredConfigReferenceBean.java
  100. 22 0
      src/main/java/password/pwm/config/stored/StoredConfiguration.java

+ 2 - 2
supplemental/pwm-license.txt → LICENSE

@@ -1,8 +1,8 @@
 Password Management Servlets (PWM)
 Password Management Servlets (PWM)
-http://code.google.com/p/pwm/
+http://www.pwm-project.org
 
 
 Copyright (c) 2006-2009 Novell, Inc.
 Copyright (c) 2006-2009 Novell, Inc.
-Copyright (c) 2009-2012 The PWM Project
+Copyright (c) 2009-2016 The PWM Project
 
 
 This program is free software; you can redistribute it and/or modify
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 it under the terms of the GNU General Public License as published by

+ 67 - 1
pom.xml

@@ -2,11 +2,24 @@
 
 
     <modelVersion>4.0.0</modelVersion>
     <modelVersion>4.0.0</modelVersion>
 
 
-    <groupId>com.github.pwmproject</groupId>
+    <groupId>org.pwm-project</groupId>
     <artifactId>pwm</artifactId>
     <artifactId>pwm</artifactId>
     <version>1.8.0-SNAPSHOT</version>
     <version>1.8.0-SNAPSHOT</version>
     <packaging>war</packaging>
     <packaging>war</packaging>
 
 
+    <licenses>
+        <license>
+            <name>The GNU General Public License (GPL) Version 2</name>
+            <url>LICENSE</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+
+    <organization>
+        <name>Pwm Project</name>
+        <url>http://www.pwm-project.org</url>
+    </organization>
+
     <properties>
     <properties>
         <maven.compiler.source>1.7</maven.compiler.source>
         <maven.compiler.source>1.7</maven.compiler.source>
         <maven.compiler.target>1.7</maven.compiler.target>
         <maven.compiler.target>1.7</maven.compiler.target>
@@ -378,9 +391,53 @@
             <version>2.7</version>
             <version>2.7</version>
         </dependency>
         </dependency>
 
 
+        <!-- client webjar dependencies -->
+        <!-- changes in client dependencies require updating AppProperty.properties:http.resources.webjarMappings -->
+        <dependency>
+            <groupId>org.webjars.bower</groupId>
+            <artifactId>dojo</artifactId>
+            <version>1.10.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars.bower</groupId>
+            <artifactId>dijit</artifactId>
+            <version>1.10.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars.bower</groupId>
+            <artifactId>dojox</artifactId>
+            <version>1.10.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars.bower</groupId>
+            <artifactId>dgrid</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars.bower</groupId>
+            <artifactId>dstore</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars.bower</groupId>
+            <artifactId>font-awesome</artifactId>
+            <version>4.5.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars.bower</groupId>
+            <artifactId>famfamfam-flags</artifactId>
+            <version>1.0.0</version>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
     <repositories>
     <repositories>
+        <repository>
+            <id>central</id>
+            <url>https://repo1.maven.org/maven2</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
         <!-- Include our own local maven repository, for artifacts that aren't available elsewhere -->
         <!-- Include our own local maven repository, for artifacts that aren't available elsewhere -->
         <repository>
         <repository>
             <id>project.local</id>
             <id>project.local</id>
@@ -394,4 +451,13 @@
             <layout>default</layout>
             <layout>default</layout>
         </repository>
         </repository>
     </repositories>
     </repositories>
+    <pluginRepositories>
+        <pluginRepository>
+            <id>central</id>
+            <url>https://repo1.maven.org/maven2</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
 </project>
 </project>

+ 13 - 3
src/main/java/password/pwm/AppProperty.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -71,6 +71,7 @@ public enum AppProperty {
     HTTP_RESOURCES_ENABLE_GZIP                      ("http.resources.gzip.enable"),
     HTTP_RESOURCES_ENABLE_GZIP                      ("http.resources.gzip.enable"),
     HTTP_RESOURCES_ENABLE_PATH_NONCE                ("http.resources.pathNonceEnable"),
     HTTP_RESOURCES_ENABLE_PATH_NONCE                ("http.resources.pathNonceEnable"),
     HTTP_RESOURCES_NONCE_PATH_PREFIX                ("http.resources.pathNoncePrefix"),
     HTTP_RESOURCES_NONCE_PATH_PREFIX                ("http.resources.pathNoncePrefix"),
+    HTTP_RESOURCES_WEBJAR_MAPPINGS                  ("http.resources.webjarMappings"),
     HTTP_RESOURCES_ZIP_FILES                        ("http.resources.zipFiles"),
     HTTP_RESOURCES_ZIP_FILES                        ("http.resources.zipFiles"),
     HTTP_COOKIE_DEFAULT_SECURE_FLAG                 ("http.cookie.default.secureFlag"),
     HTTP_COOKIE_DEFAULT_SECURE_FLAG                 ("http.cookie.default.secureFlag"),
     HTTP_COOKIE_THEME_NAME                          ("http.cookie.theme.name"),
     HTTP_COOKIE_THEME_NAME                          ("http.cookie.theme.name"),
@@ -86,6 +87,8 @@ public enum AppProperty {
     HTTP_BODY_MAXREAD_LENGTH                        ("http.body.maxReadLength"),
     HTTP_BODY_MAXREAD_LENGTH                        ("http.body.maxReadLength"),
     HTTP_ENABLE_GZIP                                ("http.gzip.enable"),
     HTTP_ENABLE_GZIP                                ("http.gzip.enable"),
     HTTP_ERRORS_ALLOW_HTML                          ("http.errors.allowHtml"),
     HTTP_ERRORS_ALLOW_HTML                          ("http.errors.allowHtml"),
+    HTTP_HEADER_SERVER                              ("http.header.server"),
+    HTTP_HEADER_SEND_CONTENT_LANGUAGE               ("http.header.sendContentLanguage"),
     HTTP_HEADER_SEND_XAMB                           ("http.header.sendXAmb"),
     HTTP_HEADER_SEND_XAMB                           ("http.header.sendXAmb"),
     HTTP_HEADER_SEND_XINSTANCE                      ("http.header.sendXInstance"),
     HTTP_HEADER_SEND_XINSTANCE                      ("http.header.sendXInstance"),
     HTTP_HEADER_SEND_XNOISE                         ("http.header.sendXNoise"),
     HTTP_HEADER_SEND_XNOISE                         ("http.header.sendXNoise"),
@@ -100,6 +103,7 @@ public enum AppProperty {
     HTTP_PARAM_NAME_PASSWORD_EXPIRED                ("http.parameter.passwordExpired"),
     HTTP_PARAM_NAME_PASSWORD_EXPIRED                ("http.parameter.passwordExpired"),
     HTTP_PARAM_NAME_SSO_ENABLE                      ("http.parameter.ssoBypass"),
     HTTP_PARAM_NAME_SSO_ENABLE                      ("http.parameter.ssoBypass"),
     HTTP_PARAM_MAX_READ_LENGTH                      ("http.parameter.maxReadLength"),
     HTTP_PARAM_MAX_READ_LENGTH                      ("http.parameter.maxReadLength"),
+    HTTP_PARAM_SESSION_VERIFICATION                 ("http.parameter.sessionVerification"),
     HTTP_PARAM_OAUTH_ACCESS_TOKEN                   ("http.parameter.oauth.accessToken"),
     HTTP_PARAM_OAUTH_ACCESS_TOKEN                   ("http.parameter.oauth.accessToken"),
     HTTP_PARAM_OAUTH_ATTRIBUTES                     ("http.parameter.oauth.attributes"),
     HTTP_PARAM_OAUTH_ATTRIBUTES                     ("http.parameter.oauth.attributes"),
     HTTP_PARAM_OAUTH_CLIENT_ID                      ("http.parameter.oauth.clientID"),
     HTTP_PARAM_OAUTH_CLIENT_ID                      ("http.parameter.oauth.clientID"),
@@ -134,11 +138,15 @@ public enum AppProperty {
     INTRUDER_MAX_DELAY_PENALTY_MS                   ("intruder.maximumDelayPenaltyMS"),
     INTRUDER_MAX_DELAY_PENALTY_MS                   ("intruder.maximumDelayPenaltyMS"),
     INTRUDER_DELAY_PER_COUNT_MS                     ("intruder.delayPerCountMS"),
     INTRUDER_DELAY_PER_COUNT_MS                     ("intruder.delayPerCountMS"),
     INTRUDER_DELAY_MAX_JITTER_MS                    ("intruder.delayMaxJitterMS"),
     INTRUDER_DELAY_MAX_JITTER_MS                    ("intruder.delayMaxJitterMS"),
-    HEALTH_MIN_CHECK_INTERVAL_SECONDS               ("health.minimumCheckIntervalSeconds"),
+    HEALTHCHECK_NOMINAL_CHECK_INTERVAL              ("healthCheck.nominalCheckIntervalSeconds"),
+    HEALTHCHECK_MIN_CHECK_INTERVAL                  ("healthCheck.minimumCheckIntervalSeconds"),
+    HEALTHCHECK_MAX_RECORD_AGE                      ("healthCheck.maximumRecordAgeSeconds"),
+    HEALTHCHECK_MAX_FORCE_WAIT                      ("healthCheck.maximumForceCheckWaitSeconds"),
     HEALTH_CERTIFICATE_WARN_SECONDS                 ("health.certificate.warnSeconds"),
     HEALTH_CERTIFICATE_WARN_SECONDS                 ("health.certificate.warnSeconds"),
     HEALTH_LDAP_CAUTION_DURATION_MS                 ("health.ldap.cautionDurationMS"),
     HEALTH_LDAP_CAUTION_DURATION_MS                 ("health.ldap.cautionDurationMS"),
     HEALTH_JAVA_MAX_THREADS                         ("health.java.maxThreads"),
     HEALTH_JAVA_MAX_THREADS                         ("health.java.maxThreads"),
     HEALTH_JAVA_MIN_HEAP_BYTES                      ("health.java.minHeapBytes"),
     HEALTH_JAVA_MIN_HEAP_BYTES                      ("health.java.minHeapBytes"),
+    HELPDESK_TOKEN_MAX_AGE                          ("helpdesk.token.maxAgeSeconds"),
     HELPDESK_TOKEN_VALUE                            ("helpdesk.token.value"),
     HELPDESK_TOKEN_VALUE                            ("helpdesk.token.value"),
     LDAP_CHAI_SETTINGS                              ("ldap.chaiSettings"),
     LDAP_CHAI_SETTINGS                              ("ldap.chaiSettings"),
     LDAP_CONNECTION_TIMEOUT                         ("ldap.connection.timeoutMS"),
     LDAP_CONNECTION_TIMEOUT                         ("ldap.connection.timeoutMS"),
@@ -161,6 +169,7 @@ public enum AppProperty {
     NMAS_THREADS_MIN_SECONDS                        ("nmas.threads.minSeconds"),
     NMAS_THREADS_MIN_SECONDS                        ("nmas.threads.minSeconds"),
     NMAS_THREADS_MAX_SECONDS                        ("nmas.threads.maxSeconds"),
     NMAS_THREADS_MAX_SECONDS                        ("nmas.threads.maxSeconds"),
     NMAS_THREADS_WATCHDOG_FREQUENCY                 ("nmas.threads.watchdogFrequencyMs"),
     NMAS_THREADS_WATCHDOG_FREQUENCY                 ("nmas.threads.watchdogFrequencyMs"),
+    NMAS_IGNORE_NMASCR_DURING_FORCECHECK            ("nmas.ignoreNmasCrDuringForceSetupCheck"),
     OAUTH_ID_REQUEST_TYPE                           ("oauth.id.requestType"),
     OAUTH_ID_REQUEST_TYPE                           ("oauth.id.requestType"),
     OAUTH_ID_ACCESS_GRANT_TYPE                      ("oauth.id.accessGrantType"),
     OAUTH_ID_ACCESS_GRANT_TYPE                      ("oauth.id.accessGrantType"),
     OAUTH_ID_REFRESH_GRANT_TYPE                     ("oauth.id.refreshGrantType"),
     OAUTH_ID_REFRESH_GRANT_TYPE                     ("oauth.id.refreshGrantType"),
@@ -210,6 +219,7 @@ public enum AppProperty {
     SECURITY_RESPONSES_HASH_ITERATIONS              ("security.responses.hashIterations"),
     SECURITY_RESPONSES_HASH_ITERATIONS              ("security.responses.hashIterations"),
     SECURITY_INPUT_TRIM                             ("security.input.trim"),
     SECURITY_INPUT_TRIM                             ("security.input.trim"),
     SECURITY_INPUT_PASSWORD_TRIM                    ("security.input.password.trim"),
     SECURITY_INPUT_PASSWORD_TRIM                    ("security.input.password.trim"),
+    SECURITY_INPUT_THEME_MATCH_REGEX                ("security.input.themeMatchRegex"),
     SECURITY_WS_REST_CLIENT_KEY_LENGTH              ("security.ws.rest.clientKeyLength"),
     SECURITY_WS_REST_CLIENT_KEY_LENGTH              ("security.ws.rest.clientKeyLength"),
     SECURITY_SHAREDHISTORY_HASH_ITERATIONS          ("security.sharedHistory.hashIterations"),
     SECURITY_SHAREDHISTORY_HASH_ITERATIONS          ("security.sharedHistory.hashIterations"),
     SECURITY_SHAREDHISTORY_HASH_NAME                ("security.sharedHistory.hashName"),
     SECURITY_SHAREDHISTORY_HASH_NAME                ("security.sharedHistory.hashName"),

+ 2 - 2
src/main/java/password/pwm/Permission.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 129 - 2
src/main/java/password/pwm/PwmAboutProperty.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -22,6 +22,20 @@
 
 
 package password.pwm;
 package password.pwm;
 
 
+import password.pwm.config.PwmSetting;
+import password.pwm.i18n.Display;
+import password.pwm.util.FileSystemUtility;
+import password.pwm.util.Helper;
+import password.pwm.util.LocaleHelper;
+import password.pwm.util.db.DatabaseAccessor;
+import password.pwm.util.logging.PwmLogger;
+import password.pwm.util.secure.PwmRandom;
+
+import java.util.Collections;
+import java.util.Date;
+import java.util.Map;
+import java.util.TreeMap;
+
 public enum PwmAboutProperty {
 public enum PwmAboutProperty {
 
 
     app_version,
     app_version,
@@ -76,4 +90,117 @@ public enum PwmAboutProperty {
     database_driverVersion,
     database_driverVersion,
     database_databaseProductName,
     database_databaseProductName,
     database_databaseProductVersion,
     database_databaseProductVersion,
+
+    ;
+
+    private static final PwmLogger LOGGER = PwmLogger.forClass(PwmAboutProperty.class);
+
+    public static Map<PwmAboutProperty,String> makeInfoBean(
+            final PwmApplication pwmApplication
+    ) {
+        final Map<PwmAboutProperty,String> aboutMap = new TreeMap<>();
+
+        // about page
+        aboutMap.put(app_version,                  PwmConstants.SERVLET_VERSION);
+        aboutMap.put(app_currentTime,              dateFormatForInfoBean(new Date()));
+        aboutMap.put(app_startTime,                dateFormatForInfoBean(pwmApplication.getStartupTime()));
+        aboutMap.put(app_installTime,              dateFormatForInfoBean(pwmApplication.getInstallTime()));
+        aboutMap.put(app_siteUrl,                  pwmApplication.getConfig().readSettingAsString(PwmSetting.PWM_SITE_URL));
+        aboutMap.put(app_instanceID,               pwmApplication.getInstanceID());
+        aboutMap.put(app_chaiApiVersion,           PwmConstants.CHAI_API_VERSION);
+
+        if (pwmApplication.getConfig().readSettingAsBoolean(PwmSetting.VERSION_CHECK_ENABLE)) {
+            if (pwmApplication.getVersionChecker() != null) {
+                aboutMap.put(app_currentPublishedVersion, pwmApplication.getVersionChecker().currentVersion());
+                aboutMap.put(app_currentPublishedVersionCheckTime, dateFormatForInfoBean(pwmApplication.getVersionChecker().lastReadTimestamp()));
+            }
+        }
+
+        aboutMap.put(app_secureBlockAlgorithm,     pwmApplication.getSecureService().getDefaultBlockAlgorithm().getLabel());
+        aboutMap.put(app_secureHashAlgorithm,      pwmApplication.getSecureService().getDefaultHashAlgorithm().toString());
+
+        aboutMap.put(app_wordlistSize,             Integer.toString(pwmApplication.getWordlistManager().size()));
+        aboutMap.put(app_seedlistSize,             Integer.toString(pwmApplication.getSeedlistManager().size()));
+        if (pwmApplication.getSharedHistoryManager() != null) {
+            aboutMap.put(app_sharedHistorySize,    Integer.toString(pwmApplication.getSharedHistoryManager().size()));
+            aboutMap.put(app_sharedHistoryOldestTime, dateFormatForInfoBean(pwmApplication.getSharedHistoryManager().getOldestEntryTime()));
+        }
+
+
+        if (pwmApplication.getEmailQueue() != null) {
+            aboutMap.put(app_emailQueueSize,       Integer.toString(pwmApplication.getEmailQueue().queueSize()));
+            aboutMap.put(app_emailQueueOldestTime, dateFormatForInfoBean(pwmApplication.getEmailQueue().eldestItem()));
+        }
+
+        if (pwmApplication.getSmsQueue() != null) {
+            aboutMap.put(app_smsQueueSize,         Integer.toString(pwmApplication.getSmsQueue().queueSize()));
+            aboutMap.put(app_smsQueueOldestTime,   dateFormatForInfoBean(pwmApplication.getSmsQueue().eldestItem()));
+        }
+
+        if (pwmApplication.getAuditManager() != null) {
+            aboutMap.put(app_syslogQueueSize,      Integer.toString(pwmApplication.getAuditManager().syslogQueueSize()));
+        }
+
+        if (pwmApplication.getLocalDB() != null) {
+            aboutMap.put(app_localDbLogSize,       Integer.toString(pwmApplication.getLocalDBLogger().getStoredEventCount()));
+            aboutMap.put(app_localDbLogOldestTime, dateFormatForInfoBean(pwmApplication.getLocalDBLogger().getTailDate()));
+
+            aboutMap.put(app_localDbStorageSize,   Helper.formatDiskSize(FileSystemUtility.getFileDirectorySize(pwmApplication.getLocalDB().getFileLocation())));
+            aboutMap.put(app_localDbFreeSpace,     Helper.formatDiskSize(FileSystemUtility.diskSpaceRemaining(pwmApplication.getLocalDB().getFileLocation())));
+        }
+
+
+        { // java info
+            final Runtime runtime = Runtime.getRuntime();
+            aboutMap.put(java_memoryFree,          Long.toString(runtime.freeMemory()));
+            aboutMap.put(java_memoryAllocated,     Long.toString(runtime.totalMemory()));
+            aboutMap.put(java_memoryMax,           Long.toString(runtime.maxMemory()));
+            aboutMap.put(java_threadCount,         Integer.toString(Thread.activeCount()));
+
+            aboutMap.put(java_vmVendor,            System.getProperty("java.vm.vendor"));
+
+            aboutMap.put(java_runtimeVersion,      System.getProperty("java.runtime.version"));
+            aboutMap.put(java_vmVersion,           System.getProperty("java.vm.version"));
+            aboutMap.put(java_vmName,              System.getProperty("java.vm.name"));
+            aboutMap.put(java_vmLocation,          System.getProperty("java.home"));
+
+            aboutMap.put(java_osName,              System.getProperty("os.name"));
+            aboutMap.put(java_osVersion,           System.getProperty("os.version"));
+            aboutMap.put(java_randomAlgorithm,     PwmRandom.getInstance().getAlgorithm());
+        }
+
+        { // build info
+            aboutMap.put(build_Time,               PwmConstants.BUILD_TIME);
+            aboutMap.put(build_Number,             PwmConstants.BUILD_NUMBER);
+            aboutMap.put(build_Type,               PwmConstants.BUILD_TYPE);
+            aboutMap.put(build_User,               PwmConstants.BUILD_USER);
+            aboutMap.put(build_Revision,           PwmConstants.BUILD_REVISION);
+            aboutMap.put(build_JavaVendor,         PwmConstants.BUILD_JAVA_VENDOR);
+            aboutMap.put(build_JavaVersion,        PwmConstants.BUILD_JAVA_VERSION);
+            aboutMap.put(build_Version,            PwmConstants.BUILD_VERSION);
+        }
+
+        { // database info
+            try {
+                final DatabaseAccessor databaseAccessor = pwmApplication.getDatabaseAccessor();
+                if (databaseAccessor != null) {
+                    final Map<PwmAboutProperty,String> debugData = databaseAccessor.getConnectionDebugProperties();
+                    aboutMap.putAll(debugData);
+                }
+            } catch (Throwable t) {
+                LOGGER.error("error reading database debug properties");
+            }
+        }
+
+        return Collections.unmodifiableMap(aboutMap);
+    }
+
+    private static String dateFormatForInfoBean(final Date date) {
+        if (date != null) {
+            return PwmConstants.DEFAULT_DATETIME_FORMAT.format(date);
+        } else {
+            return LocaleHelper.getLocalizedMessage(PwmConstants.DEFAULT_LOCALE, Display.Value_NotApplicable, null);
+        }
+
+    }
 }
 }

+ 6 - 14
src/main/java/password/pwm/PwmApplication.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -195,7 +195,7 @@ public class PwmApplication {
         );
         );
 
 
         if (!pwmEnvironment.isInternalRuntimeInstance()) {
         if (!pwmEnvironment.isInternalRuntimeInstance()) {
-            if (getApplicationMode() == MODE.ERROR || getApplicationMode() == MODE.NEW) {
+            if (getApplicationMode() == PwmApplicationMode.ERROR || getApplicationMode() == PwmApplicationMode.NEW) {
                 LOGGER.warn("skipping LocalDB open due to application mode " + getApplicationMode());
                 LOGGER.warn("skipping LocalDB open due to application mode " + getApplicationMode());
             } else {
             } else {
                 this.localDB = Initializer.initializeLocalDB(this);
                 this.localDB = Initializer.initializeLocalDB(this);
@@ -290,7 +290,7 @@ public class PwmApplication {
         }
         }
 
 
         try {
         try {
-            Map<PwmAboutProperty,String> infoMap = Helper.makeInfoBean(this);
+            Map<PwmAboutProperty,String> infoMap = PwmAboutProperty.makeInfoBean(this);
             LOGGER.trace("application info: " + JsonUtil.serializeMap(infoMap));
             LOGGER.trace("application info: " + JsonUtil.serializeMap(infoMap));
         } catch (Exception e) {
         } catch (Exception e) {
             LOGGER.error("error generating about application bean: " + e.getMessage());
             LOGGER.error("error generating about application bean: " + e.getMessage());
@@ -406,7 +406,7 @@ public class PwmApplication {
         return pwmEnvironment.getConfig();
         return pwmEnvironment.getConfig();
     }
     }
 
 
-    public MODE getApplicationMode() {
+    public PwmApplicationMode getApplicationMode() {
         return pwmEnvironment.getApplicationMode();
         return pwmEnvironment.getApplicationMode();
     }
     }
 
 
@@ -579,7 +579,7 @@ public class PwmApplication {
 
 
             // initialize the localDB
             // initialize the localDB
             try {
             try {
-                final boolean readOnly = pwmApplication.getApplicationMode() == MODE.READ_ONLY;
+                final boolean readOnly = pwmApplication.getApplicationMode() == PwmApplicationMode.READ_ONLY;
                 return LocalDBFactory.getInstance(databaseDirectory, readOnly, pwmApplication, pwmApplication.getConfig());
                 return LocalDBFactory.getInstance(databaseDirectory, readOnly, pwmApplication, pwmApplication.getConfig());
             } catch (Exception e) {
             } catch (Exception e) {
                 pwmApplication.lastLocalDBFailure = new ErrorInformation(PwmError.ERROR_LOCALDB_UNAVAILABLE,"unable to initialize LocalDB: " + e.getMessage());
                 pwmApplication.lastLocalDBFailure = new ErrorInformation(PwmError.ERROR_LOCALDB_UNAVAILABLE,"unable to initialize LocalDB: " + e.getMessage());
@@ -593,14 +593,6 @@ public class PwmApplication {
         return pwmEnvironment;
         return pwmEnvironment;
     }
     }
 
 
-    public enum MODE {
-        NEW,
-        CONFIGURATION,
-        RUNNING,
-        READ_ONLY,
-        ERROR
-    }
-
     public String getInstanceNonce() {
     public String getInstanceNonce() {
         return instanceNonce;
         return instanceNonce;
     }
     }

+ 53 - 0
src/main/java/password/pwm/PwmApplicationMode.java

@@ -0,0 +1,53 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+package password.pwm;
+
+import password.pwm.http.ContextManager;
+
+import javax.servlet.http.HttpServletRequest;
+
+public enum PwmApplicationMode {
+    NEW,
+    CONFIGURATION,
+    RUNNING,
+    READ_ONLY,
+    ERROR;
+
+    public static PwmApplicationMode determineMode(final HttpServletRequest httpServletRequest) {
+        final ContextManager contextManager;
+        try {
+            contextManager = ContextManager.getContextManager(httpServletRequest.getServletContext());
+        } catch (Throwable t) {
+            return ERROR;
+        }
+
+        final PwmApplication pwmApplication;
+        try {
+            pwmApplication = contextManager.getPwmApplication();
+        } catch (Throwable t) {
+            return ERROR;
+        }
+
+        return pwmApplication.getApplicationMode();
+    }
+}

+ 4 - 3
src/main/java/password/pwm/PwmConstants.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -243,7 +243,6 @@ public abstract class PwmConstants {
 
 
     public static final String PARAM_ACTION_REQUEST = "processAction";
     public static final String PARAM_ACTION_REQUEST = "processAction";
     public static final String PARAM_ACTION_STATE = "actionState";
     public static final String PARAM_ACTION_STATE = "actionState";
-    public static final String PARAM_VERIFICATION_KEY = "session_verification_key";
     public static final String PARAM_RESPONSE_PREFIX = "PwmResponse_R_";
     public static final String PARAM_RESPONSE_PREFIX = "PwmResponse_R_";
     public static final String PARAM_QUESTION_PREFIX = "PwmResponse_Q_";
     public static final String PARAM_QUESTION_PREFIX = "PwmResponse_Q_";
     public static final String PARAM_FORM_ID = "pwmFormID";
     public static final String PARAM_FORM_ID = "pwmFormID";
@@ -255,6 +254,7 @@ public abstract class PwmConstants {
     public static final String PARAM_LDAP_PROFILE = "ldapProfile";
     public static final String PARAM_LDAP_PROFILE = "ldapProfile";
     public static final String PARAM_SKIP_CAPTCHA = "skipCaptcha";
     public static final String PARAM_SKIP_CAPTCHA = "skipCaptcha";
     public static final String PARAM_POST_LOGIN_URL = "posturl";
     public static final String PARAM_POST_LOGIN_URL = "posturl";
+    public static final String PARAM_FILE_UPLOAD = "fileUpload";
 
 
     public static final String COOKIE_PERSISTENT_CONFIG_LOGIN = "persistentConfigLogin";
     public static final String COOKIE_PERSISTENT_CONFIG_LOGIN = "persistentConfigLogin";
 
 
@@ -341,6 +341,7 @@ public abstract class PwmConstants {
         WWW_Authenticate("WWW-Authenticate"),
         WWW_Authenticate("WWW-Authenticate"),
         ContentDisposition("content-disposition"),
         ContentDisposition("content-disposition"),
         ContentTransferEncoding("Content-Transfer-Encoding"),
         ContentTransferEncoding("Content-Transfer-Encoding"),
+        Content_Language("Content-Language"),
         Accept_Encoding("Accept-Encoding"),
         Accept_Encoding("Accept-Encoding"),
         Accept_Language("Accept-Language"),
         Accept_Language("Accept-Language"),
         Authorization("Authorization"),
         Authorization("Authorization"),

+ 10 - 9
src/main/java/password/pwm/PwmEnvironment.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -45,7 +45,7 @@ public class PwmEnvironment implements Serializable {
     private static final PwmLogger LOGGER = PwmLogger.forClass(PwmEnvironment.class);
     private static final PwmLogger LOGGER = PwmLogger.forClass(PwmEnvironment.class);
 
 
     // data elements
     // data elements
-    private final PwmApplication.MODE applicationMode;
+    private final PwmApplicationMode applicationMode;
     private final Configuration config;
     private final Configuration config;
     private final File applicationPath;
     private final File applicationPath;
     private final boolean internalRuntimeInstance;
     private final boolean internalRuntimeInstance;
@@ -57,6 +57,7 @@ public class PwmEnvironment implements Serializable {
 
 
     public enum ApplicationFlag {
     public enum ApplicationFlag {
         Appliance,
         Appliance,
+        Docker,
         ManageHttps,
         ManageHttps,
         NoFileLock,
         NoFileLock,
         CommandLineInstance,
         CommandLineInstance,
@@ -115,7 +116,7 @@ public class PwmEnvironment implements Serializable {
     }
     }
 
 
     private PwmEnvironment(
     private PwmEnvironment(
-            final PwmApplication.MODE applicationMode,
+            final PwmApplicationMode applicationMode,
             final Configuration config,
             final Configuration config,
             final File applicationPath,
             final File applicationPath,
             final boolean internalRuntimeInstance,
             final boolean internalRuntimeInstance,
@@ -123,7 +124,7 @@ public class PwmEnvironment implements Serializable {
             final ContextManager contextManager,
             final ContextManager contextManager,
             final Collection<ApplicationFlag> flags
             final Collection<ApplicationFlag> flags
     ) {
     ) {
-        this.applicationMode = applicationMode == null ? PwmApplication.MODE.ERROR : applicationMode;
+        this.applicationMode = applicationMode == null ? PwmApplicationMode.ERROR : applicationMode;
         this.config = config;
         this.config = config;
         this.applicationPath = applicationPath;
         this.applicationPath = applicationPath;
         this.internalRuntimeInstance = internalRuntimeInstance;
         this.internalRuntimeInstance = internalRuntimeInstance;
@@ -136,7 +137,7 @@ public class PwmEnvironment implements Serializable {
         verify();
         verify();
     }
     }
 
 
-    public PwmApplication.MODE getApplicationMode() {
+    public PwmApplicationMode getApplicationMode() {
         return applicationMode;
         return applicationMode;
     }
     }
 
 
@@ -223,7 +224,7 @@ public class PwmEnvironment implements Serializable {
             throws PwmUnrecoverableException
             throws PwmUnrecoverableException
     {
     {
         return new Builder(this)
         return new Builder(this)
-                .setApplicationMode(PwmApplication.MODE.NEW)
+                .setApplicationMode(PwmApplicationMode.NEW)
                 .setInternalRuntimeInstance(true)
                 .setInternalRuntimeInstance(true)
                 .setConfigurationFile(null)
                 .setConfigurationFile(null)
                 .setConfig(configuration)
                 .setConfig(configuration)
@@ -329,7 +330,7 @@ public class PwmEnvironment implements Serializable {
 
 
 
 
     public static class Builder {
     public static class Builder {
-        private PwmApplication.MODE applicationMode;
+        private PwmApplicationMode applicationMode;
         private Configuration config;
         private Configuration config;
         private File applicationPath;
         private File applicationPath;
         private boolean internalRuntimeInstance;
         private boolean internalRuntimeInstance;
@@ -352,7 +353,7 @@ public class PwmEnvironment implements Serializable {
             this.applicationPath = applicationPath;
             this.applicationPath = applicationPath;
         }
         }
 
 
-        public Builder setApplicationMode(PwmApplication.MODE applicationMode) {
+        public Builder setApplicationMode(PwmApplicationMode applicationMode) {
             this.applicationMode = applicationMode;
             this.applicationMode = applicationMode;
             return this;
             return this;
         }
         }

+ 2 - 2
src/main/java/password/pwm/RecoveryVerificationMethod.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 4 - 4
src/main/java/password/pwm/Validator.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -97,10 +97,10 @@ public class Validator {
                             + ", submittedPageID=" + submittedRequestVerificationKey
                             + ", submittedPageID=" + submittedRequestVerificationKey
                             +  ", url=" + pwmRequest.getURL().toString();
                             +  ", url=" + pwmRequest.getURL().toString();
 
 
-                    throw new PwmOperationalException(PwmError.ERROR_INCORRECT_REQUEST_SEQUENCE, debugMsg);
+                    throw new PwmOperationalException(PwmError.ERROR_INCORRECT_REQ_SEQUENCE, debugMsg);
                 }
                 }
             } catch (StringIndexOutOfBoundsException | NumberFormatException e) {
             } catch (StringIndexOutOfBoundsException | NumberFormatException e) {
-                throw new PwmOperationalException(PwmError.ERROR_INCORRECT_REQUEST_SEQUENCE);
+                throw new PwmOperationalException(PwmError.ERROR_INCORRECT_REQ_SEQUENCE);
             }
             }
         }
         }
     }
     }

+ 9 - 4
src/main/java/password/pwm/VersionChecker.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -84,7 +84,7 @@ public class VersionChecker implements PwmService {
             }
             }
         }
         }
 
 
-        if (pwmApplication.getApplicationMode() != PwmApplication.MODE.RUNNING && pwmApplication.getApplicationMode() != PwmApplication.MODE.CONFIGURATION ) {
+        if (pwmApplication.getApplicationMode() != PwmApplicationMode.RUNNING && pwmApplication.getApplicationMode() != PwmApplicationMode.CONFIGURATION ) {
             LOGGER.trace("skipping init due to application mode");
             LOGGER.trace("skipping init due to application mode");
             return;
             return;
         }
         }
@@ -149,7 +149,12 @@ public class VersionChecker implements PwmService {
             final VersionCheckInfoCache versionCheckInfo = getVersionCheckInfo();
             final VersionCheckInfoCache versionCheckInfo = getVersionCheckInfo();
             final String currentBuild = versionCheckInfo.getCurrentBuild();
             final String currentBuild = versionCheckInfo.getCurrentBuild();
             final int currentBuildNumber = Integer.parseInt(currentBuild);
             final int currentBuildNumber = Integer.parseInt(currentBuild);
-            final int localBuildNumber = Integer.parseInt(PwmConstants.BUILD_NUMBER);
+            int localBuildNumber;
+            try {
+                localBuildNumber = Integer.parseInt(PwmConstants.BUILD_NUMBER);
+            } catch (NumberFormatException e) {
+                localBuildNumber = 0;
+            }
             if (localBuildNumber < currentBuildNumber) {
             if (localBuildNumber < currentBuildNumber) {
                 LOGGER.trace("current build " + currentBuildNumber + " is newer than local build (" + localBuildNumber + ")");
                 LOGGER.trace("current build " + currentBuildNumber + " is newer than local build (" + localBuildNumber + ")");
                 return false;
                 return false;

+ 2 - 2
src/main/java/password/pwm/bean/EmailItemBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 27 - 5
src/main/java/password/pwm/bean/FormNonce.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.bean;
 package password.pwm.bean;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
@@ -5,12 +27,12 @@ import java.util.Date;
 
 
 public class FormNonce implements Serializable {
 public class FormNonce implements Serializable {
     String sessionGUID;
     String sessionGUID;
-    Date timestap;
+    Date timestamp;
     int reqCounter;
     int reqCounter;
 
 
-    public FormNonce(String sessionGUID, Date timestap,  int reqCounter) {
+    public FormNonce(String sessionGUID, Date timestamp,  int reqCounter) {
         this.sessionGUID = sessionGUID;
         this.sessionGUID = sessionGUID;
-        this.timestap = timestap;
+        this.timestamp = timestamp;
         this.reqCounter = reqCounter;
         this.reqCounter = reqCounter;
     }
     }
 
 
@@ -18,8 +40,8 @@ public class FormNonce implements Serializable {
         return sessionGUID;
         return sessionGUID;
     }
     }
 
 
-    public Date getTimestap() {
-        return timestap;
+    public Date getTimestamp() {
+        return timestamp;
     }
     }
 
 
     public int getRequestID() {
     public int getRequestID() {

+ 2 - 2
src/main/java/password/pwm/bean/LocalSessionStateBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/LoginInfoBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/PasswordStatus.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/RemoteVerificationRequestBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/RemoteVerificationResponseBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/ResponseInfoBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/SessionLabel.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/SmsItemBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/StatsPublishBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 22 - 0
src/main/java/password/pwm/bean/TokenVerificationProgress.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.bean;
 package password.pwm.bean;
 
 
 import java.io.Serializable;
 import java.io.Serializable;

+ 4 - 3
src/main/java/password/pwm/bean/UserIdentity.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -137,7 +137,8 @@ public class UserIdentity implements Serializable, Comparable {
 
 
     public static UserIdentity fromKey(final String key, final PwmApplication pwmApplication) throws PwmUnrecoverableException {
     public static UserIdentity fromKey(final String key, final PwmApplication pwmApplication) throws PwmUnrecoverableException {
         if (key == null || key.length() < 1) {
         if (key == null || key.length() < 1) {
-            return null;
+            final ErrorInformation errorInformation = new ErrorInformation(PwmError.ERROR_MISSING_PARAMETER,"userKey parameter is missing");
+            throw new PwmUnrecoverableException(errorInformation);
         }
         }
 
 
         if (key.startsWith(CRYPO_HEADER)) {
         if (key.startsWith(CRYPO_HEADER)) {

+ 2 - 2
src/main/java/password/pwm/bean/UserInfoBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/bean/pub/PublicUserInfoBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 22 - 0
src/main/java/password/pwm/bean/pub/PublishedBean.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.bean.pub;
 package password.pwm.bean.pub;
 
 
 public interface PublishedBean {
 public interface PublishedBean {

+ 2 - 2
src/main/java/password/pwm/bean/pub/SessionStateInfoBean.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/ActionConfiguration.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/ChallengeItemConfiguration.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/Configuration.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/FormConfiguration.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/FormUtility.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 9 - 4
src/main/java/password/pwm/config/LDAPPermissionInfo.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -18,13 +18,13 @@
  * You should have received a copy of the GNU General Public License
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
  */
  */
 
 
 package password.pwm.config;
 package password.pwm.config;
 
 
 import password.pwm.i18n.Config;
 import password.pwm.i18n.Config;
 import password.pwm.util.LocaleHelper;
 import password.pwm.util.LocaleHelper;
+import password.pwm.util.macro.MacroMachine;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Locale;
 import java.util.Locale;
@@ -60,7 +60,12 @@ public class LDAPPermissionInfo implements Serializable {
         ;
         ;
 
 
         public String getLabel(final Locale locale, final Configuration config) {
         public String getLabel(final Locale locale, final Configuration config) {
-            return LocaleHelper.getLocalizedMessage(locale, "Actor_" + this.toString(), config, Config.class);
+            return LocaleHelper.getLocalizedMessage(locale, "Actor_Label_" + this.toString(), config, Config.class);
+        }
+
+        public String getDescription(final Locale locale, final Configuration config) {
+            final MacroMachine macroMachine = MacroMachine.forStatic();
+            return macroMachine.expandMacros(LocaleHelper.getLocalizedMessage(locale, "Actor_Description_" + this.toString(), config, Config.class));
         }
         }
     }
     }
 }
 }

+ 7 - 2
src/main/java/password/pwm/config/PwmSetting.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -885,6 +885,8 @@ public enum PwmSetting {
 
 
 
 
     // helpdesk profile
     // helpdesk profile
+    HELPDESK_ENABLE(
+            "helpdesk.enable", PwmSettingSyntax.BOOLEAN, PwmSettingCategory.HELPDESK_SETTINGS),
     HELPDESK_PROFILE_LIST(
     HELPDESK_PROFILE_LIST(
             "helpdesk.profile.list", PwmSettingSyntax.PROFILE, PwmSettingCategory.GENERAL),
             "helpdesk.profile.list", PwmSettingSyntax.PROFILE, PwmSettingCategory.GENERAL),
     HELPDESK_PROFILE_QUERY_MATCH(
     HELPDESK_PROFILE_QUERY_MATCH(
@@ -937,6 +939,9 @@ public enum PwmSetting {
             "helpdesk.otp.verify", PwmSettingSyntax.BOOLEAN, PwmSettingCategory.HELPDESK_PROFILE),
             "helpdesk.otp.verify", PwmSettingSyntax.BOOLEAN, PwmSettingCategory.HELPDESK_PROFILE),
     HELPDESK_PASSWORD_MASKVALUE(
     HELPDESK_PASSWORD_MASKVALUE(
             "helpdesk.setPassword.maskValue", PwmSettingSyntax.BOOLEAN, PwmSettingCategory.HELPDESK_PROFILE),
             "helpdesk.setPassword.maskValue", PwmSettingSyntax.BOOLEAN, PwmSettingCategory.HELPDESK_PROFILE),
+    HELPDESK_VERIFICATION_METHODS(
+            "helpdesk.verificationMethods", PwmSettingSyntax.VERIFICATION_METHOD, PwmSettingCategory.HELPDESK_PROFILE),
+
 
 
 
 
     // Database
     // Database

+ 6 - 3
src/main/java/password/pwm/config/PwmSettingCategory.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -128,7 +128,10 @@ public enum PwmSettingCategory {
     ACTIVATION                  (MODULES),
     ACTIVATION                  (MODULES),
     SHORTCUT                    (MODULES),
     SHORTCUT                    (MODULES),
     PEOPLE_SEARCH               (MODULES),
     PEOPLE_SEARCH               (MODULES),
-    HELPDESK_PROFILE            (MODULES),
+
+    HELPDESK                    (MODULES),
+    HELPDESK_PROFILE            (HELPDESK),
+    HELPDESK_SETTINGS           (HELPDESK),
 
 
     HTTPS_SERVER                (SETTINGS),
     HTTPS_SERVER                (SETTINGS),
 
 

+ 5 - 3
src/main/java/password/pwm/config/PwmSettingFlag.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -18,7 +18,6 @@
  * You should have received a copy of the GNU General Public License
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
  */
  */
 
 
 package password.pwm.config;
 package password.pwm.config;
@@ -37,5 +36,8 @@ public enum PwmSettingFlag {
     Permission_HideMatch,
     Permission_HideMatch,
 
 
     Form_HideOptions,
     Form_HideOptions,
+    Form_ShowUniqueOption,
+    Form_ShowReadOnlyOption,
+    Form_ShowRequiredOption,
 
 
 }
 }

+ 22 - 0
src/main/java/password/pwm/config/PwmSettingProperty.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config;
 package password.pwm.config;
 
 
 public enum PwmSettingProperty {
 public enum PwmSettingProperty {

+ 2 - 2
src/main/java/password/pwm/config/PwmSettingSyntax.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/PwmSettingTemplate.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 3
src/main/java/password/pwm/config/PwmSettingTemplateSet.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -18,7 +18,6 @@
  * You should have received a copy of the GNU General Public License
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
  */
  */
 
 
 package password.pwm.config;
 package password.pwm.config;

+ 2 - 2
src/main/java/password/pwm/config/PwmSettingXml.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/SettingReader.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/SettingUIFunction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/ShortcutItem.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/StoredValue.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/UserPermission.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/function/AbstractUriCertImportFunction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/function/HttpsCertParseFunction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/function/LdapCertImportFunction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/function/NAAFCertImportFunction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/function/OAuthCertImportFunction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/function/SyslogCertImportFunction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/function/UserMatchViewerFunction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/ADPolicyComplexity.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/ApplicationPage.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/ConfigurationOption.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/DataStorageMethod.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/DuplicateMode.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/ForceSetupPolicy.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/HelpdeskClearResponseMode.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/HelpdeskUIMode.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/IntruderStorageMethod.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/MessageSendMethod.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/OTPStorageFormat.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/PasswordSyncCheckMode.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/RecoveryAction.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/RecoveryVerificationMethods.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/RequireCurrentPasswordMode.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/SelectableContextMode.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 22 - 0
src/main/java/password/pwm/config/option/SessionBeanMode.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config.option;
 package password.pwm.config.option;
 
 
 public enum SessionBeanMode implements ConfigurationOption {
 public enum SessionBeanMode implements ConfigurationOption {

+ 2 - 2
src/main/java/password/pwm/config/option/SessionVerificationMode.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/TLSVersion.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/TokenStorageMethod.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/UserEventStorageMethod.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/option/ViewStatusFields.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 20 - 2
src/main/java/password/pwm/config/profile/AbstractProfile.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -23,7 +23,9 @@
 package password.pwm.config.profile;
 package password.pwm.config.profile;
 
 
 import password.pwm.config.*;
 import password.pwm.config.*;
+import password.pwm.config.option.RecoveryVerificationMethods;
 import password.pwm.config.stored.StoredConfiguration;
 import password.pwm.config.stored.StoredConfiguration;
+import password.pwm.config.value.VerificationMethodValue;
 import password.pwm.util.PasswordData;
 import password.pwm.util.PasswordData;
 
 
 import java.security.cert.X509Certificate;
 import java.security.cert.X509Certificate;
@@ -125,4 +127,20 @@ public abstract class AbstractProfile implements Profile, SettingReader {
         }
         }
         return valueMap;
         return valueMap;
     }
     }
+
+    public Set<RecoveryVerificationMethods> readVerificationMethods(final PwmSetting pwmSetting, VerificationMethodValue.EnabledState enabledState) {
+        final Set<RecoveryVerificationMethods> result = new LinkedHashSet<>();
+        final StoredValue configValue = storedValueMap.get(pwmSetting);
+        final VerificationMethodValue.VerificationMethodSettings verificationMethodSettings = (VerificationMethodValue.VerificationMethodSettings)configValue.toNativeObject();
+
+        for (final RecoveryVerificationMethods recoveryVerificationMethods : RecoveryVerificationMethods.availableValues()) {
+            if (verificationMethodSettings.getMethodSettings().containsKey(recoveryVerificationMethods)) {
+                if (verificationMethodSettings.getMethodSettings().get(recoveryVerificationMethods).getEnabledState() == enabledState) {
+                    result.add(recoveryVerificationMethods);
+                }
+            }
+        }
+        return result;
+    }
+
 }
 }

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

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 3 - 14
src/main/java/password/pwm/config/profile/ForgottenPasswordProfile.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -74,18 +74,7 @@ public class ForgottenPasswordProfile extends AbstractProfile {
     }
     }
     
     
     private Set<RecoveryVerificationMethods> readRecoveryAuthMethods(final VerificationMethodValue.EnabledState enabledState) {
     private Set<RecoveryVerificationMethods> readRecoveryAuthMethods(final VerificationMethodValue.EnabledState enabledState) {
-        final Set<RecoveryVerificationMethods> result = new LinkedHashSet<>();
-        final StoredValue configValue = storedValueMap.get(PwmSetting.RECOVERY_VERIFICATION_METHODS);
-        final VerificationMethodValue.VerificationMethodSettings verificationMethodSettings = (VerificationMethodValue.VerificationMethodSettings)configValue.toNativeObject();
-
-        for (final RecoveryVerificationMethods recoveryVerificationMethods : RecoveryVerificationMethods.availableValues()) {
-            if (verificationMethodSettings.getMethodSettings().containsKey(recoveryVerificationMethods)) {
-                if (verificationMethodSettings.getMethodSettings().get(recoveryVerificationMethods).getEnabledState() == enabledState) {
-                    result.add(recoveryVerificationMethods);
-                }
-            }
-        }
-        return result;
+        return this.readVerificationMethods(PwmSetting.RECOVERY_VERIFICATION_METHODS, enabledState);
     }
     }
 
 
     public int getMinOptionalRequired() {
     public int getMinOptionalRequired() {

+ 18 - 6
src/main/java/password/pwm/config/profile/HelpdeskProfile.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -23,11 +23,12 @@
 package password.pwm.config.profile;
 package password.pwm.config.profile;
 
 
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;
-import password.pwm.config.stored.StoredConfiguration;
 import password.pwm.config.StoredValue;
 import password.pwm.config.StoredValue;
+import password.pwm.config.option.RecoveryVerificationMethods;
+import password.pwm.config.stored.StoredConfiguration;
+import password.pwm.config.value.VerificationMethodValue;
 
 
-import java.util.Locale;
-import java.util.Map;
+import java.util.*;
 
 
 public class HelpdeskProfile extends AbstractProfile implements Profile {
 public class HelpdeskProfile extends AbstractProfile implements Profile {
 
 
@@ -40,7 +41,6 @@ public class HelpdeskProfile extends AbstractProfile implements Profile {
     public static HelpdeskProfile makeFromStoredConfiguration(final StoredConfiguration storedConfiguration, final String identifier) {
     public static HelpdeskProfile makeFromStoredConfiguration(final StoredConfiguration storedConfiguration, final String identifier) {
         final Map<PwmSetting,StoredValue> valueMap = makeValueMap(storedConfiguration, identifier, PROFILE_TYPE.getCategory());
         final Map<PwmSetting,StoredValue> valueMap = makeValueMap(storedConfiguration, identifier, PROFILE_TYPE.getCategory());
         return new HelpdeskProfile(identifier, valueMap);
         return new HelpdeskProfile(identifier, valueMap);
-
     }
     }
 
 
     @Override
     @Override
@@ -53,4 +53,16 @@ public class HelpdeskProfile extends AbstractProfile implements Profile {
     public ProfileType profileType() {
     public ProfileType profileType() {
         return PROFILE_TYPE;
         return PROFILE_TYPE;
     }
     }
+
+    public  Collection<RecoveryVerificationMethods> readOptionalVerificationMethods() {
+        final Set<RecoveryVerificationMethods> result = new LinkedHashSet<>();
+        result.addAll(readVerificationMethods(PwmSetting.HELPDESK_VERIFICATION_METHODS, VerificationMethodValue.EnabledState.optional));
+        result.addAll(readVerificationMethods(PwmSetting.HELPDESK_VERIFICATION_METHODS, VerificationMethodValue.EnabledState.optional));
+        return Collections.unmodifiableSet(result);
+    }
+
+    public  Collection<RecoveryVerificationMethods> readRequiredVerificationMethods() {
+        return readVerificationMethods(PwmSetting.HELPDESK_VERIFICATION_METHODS, VerificationMethodValue.EnabledState.required);
+    }
+
 }
 }

+ 2 - 2
src/main/java/password/pwm/config/profile/LdapProfile.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/profile/NewUserProfile.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/profile/Profile.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/profile/ProfileType.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/profile/ProfileUtility.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

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

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 2 - 2
src/main/java/password/pwm/config/profile/PwmPasswordRule.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by

+ 22 - 0
src/main/java/password/pwm/config/profile/UpdateAttributesProfile.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config.profile;
 package password.pwm.config.profile;
 
 
 import password.pwm.config.PwmSetting;
 import password.pwm.config.PwmSetting;

+ 2 - 3
src/main/java/password/pwm/config/stored/ConfigChangeLog.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -18,7 +18,6 @@
  * You should have received a copy of the GNU General Public License
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
  */
  */
 
 
 package password.pwm.config.stored;
 package password.pwm.config.stored;

+ 2 - 3
src/main/java/password/pwm/config/stored/ConfigChangeLogImpl.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -18,7 +18,6 @@
  * You should have received a copy of the GNU General Public License
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
  */
  */
 
 
 package password.pwm.config.stored;
 package password.pwm.config.stored;

+ 22 - 0
src/main/java/password/pwm/config/stored/ConfigurationProperty.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config.stored;
 package password.pwm.config.stored;
 
 
 public enum ConfigurationProperty {
 public enum ConfigurationProperty {

+ 10 - 9
src/main/java/password/pwm/config/stored/ConfigurationReader.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -25,6 +25,7 @@ package password.pwm.config.stored;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FileUtils;
 import password.pwm.AppProperty;
 import password.pwm.AppProperty;
 import password.pwm.PwmApplication;
 import password.pwm.PwmApplication;
+import password.pwm.PwmApplicationMode;
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;
 import password.pwm.bean.SessionLabel;
 import password.pwm.bean.SessionLabel;
 import password.pwm.config.Configuration;
 import password.pwm.config.Configuration;
@@ -63,7 +64,7 @@ public class ConfigurationReader {
 
 
     private Date configurationReadTime;
     private Date configurationReadTime;
 
 
-    private PwmApplication.MODE configMode = PwmApplication.MODE.NEW;
+    private PwmApplicationMode configMode = PwmApplicationMode.NEW;
 
 
     private volatile boolean saveInProgress;
     private volatile boolean saveInProgress;
 
 
@@ -86,7 +87,7 @@ public class ConfigurationReader {
         LOGGER.debug("configuration mode: " + configMode);
         LOGGER.debug("configuration mode: " + configMode);
     }
     }
 
 
-    public PwmApplication.MODE getConfigMode() {
+    public PwmApplicationMode getConfigMode() {
         return configMode;
         return configMode;
     }
     }
 
 
@@ -120,7 +121,7 @@ public class ConfigurationReader {
         } catch (Exception e) {
         } catch (Exception e) {
             final String errorMsg = "unable to read configuration file: " + e.getMessage();
             final String errorMsg = "unable to read configuration file: " + e.getMessage();
             final ErrorInformation errorInformation = new ErrorInformation(PwmError.CONFIG_FORMAT_ERROR,null,new String[]{errorMsg});
             final ErrorInformation errorInformation = new ErrorInformation(PwmError.CONFIG_FORMAT_ERROR,null,new String[]{errorMsg});
-            this.configMode = PwmApplication.MODE.ERROR;
+            this.configMode = PwmApplicationMode.ERROR;
             throw new PwmUnrecoverableException(errorInformation);
             throw new PwmUnrecoverableException(errorInformation);
         }
         }
 
 
@@ -131,7 +132,7 @@ public class ConfigurationReader {
         } catch (PwmUnrecoverableException e) {
         } catch (PwmUnrecoverableException e) {
             final String errorMsg = "unable to parse configuration file: " + e.getMessage();
             final String errorMsg = "unable to parse configuration file: " + e.getMessage();
             final ErrorInformation errorInformation = new ErrorInformation(PwmError.CONFIG_FORMAT_ERROR,null,new String[]{errorMsg});
             final ErrorInformation errorInformation = new ErrorInformation(PwmError.CONFIG_FORMAT_ERROR,null,new String[]{errorMsg});
-            this.configMode = PwmApplication.MODE.ERROR;
+            this.configMode = PwmApplicationMode.ERROR;
             throw new PwmUnrecoverableException(errorInformation);
             throw new PwmUnrecoverableException(errorInformation);
         }
         }
 
 
@@ -139,15 +140,15 @@ public class ConfigurationReader {
         if (validationErrorMsgs != null && !validationErrorMsgs.isEmpty()) {
         if (validationErrorMsgs != null && !validationErrorMsgs.isEmpty()) {
             final String errorMsg = "value error in config file, please investigate: " + validationErrorMsgs.get(0);
             final String errorMsg = "value error in config file, please investigate: " + validationErrorMsgs.get(0);
             final ErrorInformation errorInformation = new ErrorInformation(PwmError.CONFIG_FORMAT_ERROR,null,new String[]{errorMsg});
             final ErrorInformation errorInformation = new ErrorInformation(PwmError.CONFIG_FORMAT_ERROR,null,new String[]{errorMsg});
-            this.configMode = PwmApplication.MODE.ERROR;
+            this.configMode = PwmApplicationMode.ERROR;
             throw new PwmUnrecoverableException(errorInformation);
             throw new PwmUnrecoverableException(errorInformation);
         }
         }
 
 
         final String configIsEditable = storedConfiguration.readConfigProperty(ConfigurationProperty.CONFIG_IS_EDITABLE);
         final String configIsEditable = storedConfiguration.readConfigProperty(ConfigurationProperty.CONFIG_IS_EDITABLE);
         if (PwmConstants.TRIAL_MODE || (configIsEditable != null && configIsEditable.equalsIgnoreCase("true"))) {
         if (PwmConstants.TRIAL_MODE || (configIsEditable != null && configIsEditable.equalsIgnoreCase("true"))) {
-            this.configMode = PwmApplication.MODE.CONFIGURATION;
+            this.configMode = PwmApplicationMode.CONFIGURATION;
         } else {
         } else {
-            this.configMode = PwmApplication.MODE.RUNNING;
+            this.configMode = PwmApplicationMode.RUNNING;
         }
         }
 
 
         LOGGER.debug("configuration reading/parsing complete in " + TimeDuration.fromCurrent(startTime).asLongString());
         LOGGER.debug("configuration reading/parsing complete in " + TimeDuration.fromCurrent(startTime).asLongString());

+ 2 - 3
src/main/java/password/pwm/config/stored/NGStorageEngineImpl.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -18,7 +18,6 @@
  * You should have received a copy of the GNU General Public License
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
  */
  */
 
 
 package password.pwm.config.stored;
 package password.pwm.config.stored;

+ 22 - 0
src/main/java/password/pwm/config/stored/NGStoredConfiguration.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config.stored;
 package password.pwm.config.stored;
 
 
 import password.pwm.PwmConstants;
 import password.pwm.PwmConstants;

+ 22 - 0
src/main/java/password/pwm/config/stored/NGStoredConfigurationFactory.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config.stored;
 package password.pwm.config.stored;
 
 
 import org.jdom2.Document;
 import org.jdom2.Document;

+ 2 - 3
src/main/java/password/pwm/config/stored/StorageEngine.java

@@ -1,9 +1,9 @@
 /*
 /*
  * Password Management Servlets (PWM)
  * Password Management Servlets (PWM)
- * http://code.google.com/p/pwm/
+ * http://www.pwm-project.org
  *
  *
  * Copyright (c) 2006-2009 Novell, Inc.
  * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2015 The PWM Project
+ * Copyright (c) 2009-2016 The PWM Project
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
@@ -18,7 +18,6 @@
  * You should have received a copy of the GNU General Public License
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
  */
  */
 
 
 package password.pwm.config.stored;
 package password.pwm.config.stored;

+ 22 - 0
src/main/java/password/pwm/config/stored/StoredConfigReference.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config.stored;
 package password.pwm.config.stored;
 
 
 import java.io.Serializable;
 import java.io.Serializable;

+ 22 - 0
src/main/java/password/pwm/config/stored/StoredConfigReferenceBean.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config.stored;
 package password.pwm.config.stored;
 
 
 import java.io.Serializable;
 import java.io.Serializable;

+ 22 - 0
src/main/java/password/pwm/config/stored/StoredConfiguration.java

@@ -1,3 +1,25 @@
+/*
+ * Password Management Servlets (PWM)
+ * http://www.pwm-project.org
+ *
+ * Copyright (c) 2006-2009 Novell, Inc.
+ * Copyright (c) 2009-2016 The PWM Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
 package password.pwm.config.stored;
 package password.pwm.config.stored;
 
 
 import password.pwm.bean.UserIdentity;
 import password.pwm.bean.UserIdentity;

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác