Skip to content

Commit

Permalink
configmanager-wordlist page
Browse files Browse the repository at this point in the history
paged ldap search (via chai)
more servlet refactoring
  • Loading branch information
jrivard committed Aug 23, 2015
1 parent b2abf96 commit 4a4a4aa
Show file tree
Hide file tree
Showing 135 changed files with 4,798 additions and 3,747 deletions.
2 changes: 2 additions & 0 deletions pwm/servlet/src/password/pwm/AppProperty.java
Expand Up @@ -207,12 +207,14 @@ public enum AppProperty {
SECURITY_CONFIG_MIN_SECURITY_KEY_LENGTH ("security.config.minSecurityKeyLength"),
SECURITY_DEFAULT_EPHEMERAL_BLOCK_ALG ("security.defaultEphemeralBlockAlg"),
SECURITY_DEFAULT_EPHEMERAL_HASH_ALG ("security.defaultEphemeralHashAlg"),
SEEDLIST_BUILTIN_PATH ("seedlist.builtin.path"),
TOKEN_REMOVAL_DELAY_MS ("token.removalDelayMS"),
TOKEN_PURGE_BATCH_SIZE ("token.purgeBatchSize"),
TOKEN_MAX_UNIQUE_CREATE_ATTEMPTS ("token.maxUniqueCreateAttempts"),

/** Regular expression to be used for matching URLs to be shortened by the URL Shortening Service Class. */
URL_SHORTNER_URL_REGEX ("urlshortener.url.regex"),
WORDLIST_BUILTIN_PATH ("wordlist.builtin.path"),
WS_REST_CLIENT_PWRULE_HALTONERROR ("ws.restClient.pwRule.haltOnError"),

;
Expand Down
4 changes: 3 additions & 1 deletion pwm/servlet/src/password/pwm/AppProperty.properties
Expand Up @@ -174,7 +174,7 @@ queue.syslog.retryTimeoutMs=30000
queue.syslog.maxAgeMs=86400000
queue.syslog.maxCount=100000
queue.maxCloseTimeoutMs=5000
reporting.ldap.searchTimeoutMs=300000
reporting.ldap.searchTimeoutMs=1800000
recaptcha.clientJsUrl=//www.google.com/recaptcha/api.js
recaptcha.clientIframeUrl=//www.google.com/recaptcha/api/noscript
recaptcha.validateUrl=https://www.google.com/recaptcha/api/siteverify
Expand All @@ -195,8 +195,10 @@ security.ldap.canonicalCacheSeconds=30
security.defaultEphemeralBlockAlg=AES128_HMAC256
security.defaultEphemeralHashAlg=SHA512
security.config.minSecurityKeyLength=32
seedlist.builtin.path=seedlist.zip
token.removalDelayMS=86400000
token.purgeBatchSize=1000
token.maxUniqueCreateAttempts=100
urlshortener.url.regex=(https?://([^:@]+(:[^@]+)?@)?([a-zA-Z0-9.]+|d{1,3}.d{1,3}.d{1,3}.d{1,3}|[[0-9a-fA-F:]+])(:d{1,5})?/*[a-zA-Z0-9/\%_.]*?*[a-zA-Z0-9/\%_.=&#]*)
wordlist.builtin.path=wordlist.zip
ws.restClient.pwRule.haltOnError=true
24 changes: 12 additions & 12 deletions pwm/servlet/src/password/pwm/PwmApplication.java
Expand Up @@ -98,6 +98,8 @@ public enum AppAttribute {
SMS_ITEM_COUNTER("smsQueue.itemCount"),
EMAIL_ITEM_COUNTER("itemQueue.itemCount"),
LOCALDB_IMPORT_STATUS("localDB.import.status"),
WORDLIST_METADATA("wordlist.metadata"),
SEEDLIST_METADATA("seedlist.metadata"),

;

Expand Down Expand Up @@ -222,7 +224,11 @@ private void initialize()
);

if (!pwmEnvironment.internalRuntimeInstance) {
this.localDB = Initializer.initializeLocalDB(this);
if (getApplicationMode() == MODE.ERROR || getApplicationMode() == MODE.NEW) {
LOGGER.warn("skipping LocalDB open due to application mode " + getApplicationMode());
} else {
this.localDB = Initializer.initializeLocalDB(this);
}
}

this.localDBLogger = PwmLogManager.initializeLocalDBLogger(this);
Expand Down Expand Up @@ -295,7 +301,7 @@ private void initServices()
private void postInitTasks() {
final Date startTime = new Date();

LOGGER.debug("loaded configuration: \n" + configuration.toDebugString());
LOGGER.debug("loaded configuration: " + configuration.toDebugString());

// detect if config has been modified since previous startup
try {
Expand Down Expand Up @@ -622,12 +628,7 @@ public LocalDB getLocalDB() {

private static class Initializer {

public static LocalDB initializeLocalDB(final PwmApplication pwmApplication) {
if (pwmApplication.getApplicationMode() == MODE.ERROR || pwmApplication.getApplicationMode() == MODE.NEW) {
LOGGER.warn("skipping LocalDB open due to application mode " + pwmApplication.getApplicationMode());
return null;
}

public static LocalDB initializeLocalDB(final PwmApplication pwmApplication) throws PwmUnrecoverableException {
final File databaseDirectory;
// see if META-INF isn't already there, then use WEB-INF.
try {
Expand All @@ -636,7 +637,7 @@ public static LocalDB initializeLocalDB(final PwmApplication pwmApplication) {
} catch (Exception e) {
pwmApplication.lastLocalDBFailure = new ErrorInformation(PwmError.ERROR_LOCALDB_UNAVAILABLE,"error locating configured LocalDB directory: " + e.getMessage());
LOGGER.warn(pwmApplication.lastLocalDBFailure.toDebugStr());
return null;
throw new PwmUnrecoverableException(pwmApplication.lastLocalDBFailure);
}

LOGGER.debug("using localDB path " + databaseDirectory);
Expand All @@ -648,9 +649,8 @@ public static LocalDB initializeLocalDB(final PwmApplication pwmApplication) {
} catch (Exception e) {
pwmApplication.lastLocalDBFailure = new ErrorInformation(PwmError.ERROR_LOCALDB_UNAVAILABLE,"unable to initialize LocalDB: " + e.getMessage());
LOGGER.warn(pwmApplication.lastLocalDBFailure.toDebugStr());
throw new PwmUnrecoverableException(pwmApplication.lastLocalDBFailure);
}

return null;
}
}

Expand Down Expand Up @@ -741,7 +741,7 @@ public static void verifyApplicationPath(final File applicationPath) throws PwmU
+ " An explicit applicationPath parameter must be specified, or the file can be removed if the applicationPath should be changed to the default /WEB-INF directory.";
throw new PwmUnrecoverableException(new ErrorInformation(PwmError.ERROR_STARTUP_ERROR, errorMsg));
} else {
LOGGER.trace("marker file " + infoFile.getAbsolutePath() + " does not exist");
LOGGER.trace("marker file " + infoFile.getAbsolutePath() + " does not exist (this is usually a good thing, this file should not exist in a configured applicationPath");
}

}
Expand Down
3 changes: 2 additions & 1 deletion pwm/servlet/src/password/pwm/PwmConstants.java
Expand Up @@ -97,7 +97,6 @@ public abstract class PwmConstants {

public static final String APPLICATION_PATH_INFO_FILE = readPwmConstantsBundle("applicationPathInfoFile");

public static final int DEFAULT_WORDLIST_LOADFACTOR = Integer.parseInt(readPwmConstantsBundle("wordlist.loadFactor"));
public static final int LOCALDB_LOGGER_MAX_QUEUE_SIZE = Integer.parseInt(readPwmConstantsBundle("pwmDBLoggerMaxQueueSize"));
public static final int LOCALDB_LOGGER_MAX_DIRTY_BUFFER_MS = Integer.parseInt(readPwmConstantsBundle("pwmDBLoggerMaxDirtyBufferMS"));
public static final boolean ENABLE_EULA_DISPLAY = Boolean.parseBoolean(readPwmConstantsBundle("enableEulaDisplay"));
Expand Down Expand Up @@ -234,12 +233,14 @@ public enum JSP_URL {
GUEST_REGISTRATION("guest-create.jsp"),
GUEST_UPDATE("guest-update.jsp"),
GUEST_UPDATE_SEARCH("guest-search.jsp"),
ACCOUNT_INFORMATION("userinfo.jsp"),
SHORTCUT("shortcut.jsp"),
CAPTCHA("captcha.jsp"),
PEOPLE_SEARCH("peoplesearch.jsp"),
CONFIG_MANAGER_EDITOR("configeditor.jsp"),
CONFIG_MANAGER_EDITOR_SUMMARY("configmanager-summary.jsp"),
CONFIG_MANAGER_MODE_CONFIGURATION("configmanager.jsp"),
CONFIG_MANAGER_WORDLISTS("configmanager-wordlists.jsp"),
CONFIG_MANAGER_LOGIN("configmanager-login.jsp"),
HELPDESK_SEARCH("helpdesk.jsp"),
HELPDESK_DETAIL("helpdesk-detail.jsp"),
Expand Down
1 change: 0 additions & 1 deletion pwm/servlet/src/password/pwm/PwmConstants.properties
Expand Up @@ -27,7 +27,6 @@
locale.defaultLocale=en
locale.defaultDateTimeFormat=yyyy-MM-dd'T'HH:mm:ss'Z'
locale.defaultTimeZone=Zulu
wordlist.loadFactor=50
httpHeaderAuthorizationBasic=Basic
httpHeaderXForwardedFor=X-Forwarded-For
httpRestClientKey=X-RestClientKey
Expand Down
11 changes: 6 additions & 5 deletions pwm/servlet/src/password/pwm/config/Configuration.java
Expand Up @@ -31,6 +31,7 @@
import password.pwm.config.option.MessageSendMethod;
import password.pwm.config.option.TokenStorageMethod;
import password.pwm.config.profile.*;
import password.pwm.config.stored.StoredConfigurationImpl;
import password.pwm.config.value.*;
import password.pwm.error.ErrorInformation;
import password.pwm.error.PwmError;
Expand All @@ -56,13 +57,13 @@ public class Configuration implements Serializable, SettingReader {

private final static PwmLogger LOGGER = PwmLogger.forClass(Configuration.class);

private final StoredConfiguration storedConfiguration;
private final StoredConfigurationImpl storedConfiguration;

private DataCache dataCache = new DataCache();

// --------------------------- CONSTRUCTORS ---------------------------

public Configuration(final StoredConfiguration storedConfiguration) {
public Configuration(final StoredConfigurationImpl storedConfiguration) {
this.storedConfiguration = storedConfiguration;
}

Expand Down Expand Up @@ -457,7 +458,7 @@ public Collection<Locale> localesForSetting(final PwmSetting setting) {
return returnCollection;
}

public String readProperty(final StoredConfiguration.ConfigProperty key) {
public String readProperty(final StoredConfigurationImpl.ConfigProperty key) {
return storedConfiguration.readConfigProperty(key);
}

Expand All @@ -481,7 +482,7 @@ public X509Certificate[] readSettingAsCertificate(final PwmSetting setting) {
}

public String getNotes() {
return storedConfiguration.readConfigProperty(StoredConfiguration.ConfigProperty.PROPERTY_KEY_NOTES);
return storedConfiguration.readConfigProperty(StoredConfigurationImpl.ConfigProperty.PROPERTY_KEY_NOTES);
}

public PwmSecurityKey getSecurityKey() throws PwmUnrecoverableException {
Expand Down Expand Up @@ -800,7 +801,7 @@ public String configurationHash()

public Set<PwmSetting> nonDefaultSettings() {
final HashSet returnSet = new HashSet();
for (StoredConfiguration.SettingValueRecord valueRecord : this.storedConfiguration.modifiedSettings()) {
for (StoredConfigurationImpl.SettingValueRecord valueRecord : this.storedConfiguration.modifiedSettings()) {
returnSet.add(valueRecord.getSetting());
}
return returnSet;
Expand Down
8 changes: 4 additions & 4 deletions pwm/servlet/src/password/pwm/config/PwmSetting.java
Expand Up @@ -140,8 +140,6 @@ public enum PwmSetting {
"expireWarnTime", PwmSettingSyntax.DURATION, PwmSettingCategory.CHANGE_PASSWORD),
EXPIRE_CHECK_DURING_AUTH(
"expireCheckDuringAuth", PwmSettingSyntax.BOOLEAN, PwmSettingCategory.CHANGE_PASSWORD),
SEEDLIST_FILENAME(
"pwm.seedlist.location", PwmSettingSyntax.STRING, PwmSettingCategory.CHANGE_PASSWORD),
CHANGE_PASSWORD_WRITE_ATTRIBUTES(
"changePassword.writeAttributes", PwmSettingSyntax.ACTION, PwmSettingCategory.CHANGE_PASSWORD),
PASSWORD_SHOW_AUTOGEN(
Expand Down Expand Up @@ -327,8 +325,6 @@ public enum PwmSetting {
//global password policy settings
PASSWORD_POLICY_SOURCE(
"password.policy.source", PwmSettingSyntax.SELECT, PwmSettingCategory.PASSWORD_GLOBAL),
WORDLIST_FILENAME(
"pwm.wordlist.location", PwmSettingSyntax.STRING, PwmSettingCategory.PASSWORD_GLOBAL),
PASSWORD_SHAREDHISTORY_ENABLE(
"password.sharedHistory.enable", PwmSettingSyntax.BOOLEAN, PwmSettingCategory.PASSWORD_GLOBAL),
PASSWORD_SHAREDHISTORY_MAX_AGE(
Expand Down Expand Up @@ -1020,6 +1016,10 @@ public enum PwmSetting {


// deprecated.
WORDLIST_FILENAME(
"pwm.wordlist.location", PwmSettingSyntax.STRING, PwmSettingCategory.PASSWORD_GLOBAL),
SEEDLIST_FILENAME(
"pwm.seedlist.location", PwmSettingSyntax.STRING, PwmSettingCategory.CHANGE_PASSWORD),
PASSWORD_POLICY_AD_COMPLEXITY(
"password.policy.ADComplexity", PwmSettingSyntax.BOOLEAN, PwmSettingCategory.PASSWORD_POLICY),
CHALLENGE_REQUIRE_RESPONSES(
Expand Down
20 changes: 10 additions & 10 deletions pwm/servlet/src/password/pwm/config/PwmSetting.xml
Expand Up @@ -350,11 +350,6 @@
<value>true</value>
</default>
</setting>
<setting key="pwm.seedlist.location" level="2">
<default>
<value><![CDATA[seedlist.zip]]></value>
</default>
</setting>
<setting key="changePassword.writeAttributes" level="1">
<default />
</setting>
Expand Down Expand Up @@ -1096,11 +1091,6 @@
<value><![CDATA[.*[^A-Za-z0-9]]]></value>
</default>
</setting>
<setting key="pwm.wordlist.location" level="1">
<default>
<value><![CDATA[wordlist.zip]]></value>
</default>
</setting>
<setting key="wordlistCaseSensitive" level="1" required="true">
<default>
<value>false</value>
Expand Down Expand Up @@ -3123,6 +3113,16 @@
</options>
</setting>
<!-- DEPRECATED SETTINGS -->
<setting key="pwm.wordlist.location" level="1" hidden="true">
<default>
<value><![CDATA[wordlist.zip]]></value>
</default>
</setting>
<setting key="pwm.seedlist.location" level="2" hidden="true">
<default>
<value><![CDATA[seedlist.zip]]></value>
</default>
</setting>
<setting key="password.policy.ADComplexity" level="99" required="false" hidden="true">
<default>
<value>false</value>
Expand Down
3 changes: 2 additions & 1 deletion pwm/servlet/src/password/pwm/config/SettingUIFunction.java
Expand Up @@ -22,14 +22,15 @@

package password.pwm.config;

import password.pwm.config.stored.StoredConfigurationImpl;
import password.pwm.http.PwmRequest;

import java.io.Serializable;

public interface SettingUIFunction {
Serializable provideFunction(
final PwmRequest pwmRequest,
final StoredConfiguration storedConfiguration,
final StoredConfigurationImpl storedConfiguration,
final PwmSetting setting,
final String profile
)
Expand Down
Expand Up @@ -26,7 +26,7 @@
import password.pwm.bean.UserIdentity;
import password.pwm.config.PwmSetting;
import password.pwm.config.SettingUIFunction;
import password.pwm.config.StoredConfiguration;
import password.pwm.config.stored.StoredConfigurationImpl;
import password.pwm.config.value.X509CertificateValue;
import password.pwm.error.*;
import password.pwm.http.PwmRequest;
Expand All @@ -44,7 +44,7 @@ abstract class AbstractUriCertImportFunction implements SettingUIFunction {
@Override
public String provideFunction(
PwmRequest pwmRequest,
StoredConfiguration storedConfiguration,
StoredConfigurationImpl storedConfiguration,
PwmSetting setting,
String profile
)
Expand Down
Expand Up @@ -26,7 +26,7 @@
import password.pwm.bean.UserIdentity;
import password.pwm.config.PwmSetting;
import password.pwm.config.SettingUIFunction;
import password.pwm.config.StoredConfiguration;
import password.pwm.config.stored.StoredConfigurationImpl;
import password.pwm.config.value.StringArrayValue;
import password.pwm.config.value.X509CertificateValue;
import password.pwm.error.*;
Expand All @@ -47,7 +47,7 @@ public class LdapCertImportFunction implements SettingUIFunction {
@Override
public String provideFunction(
PwmRequest pwmRequest,
StoredConfiguration storedConfiguration,
StoredConfigurationImpl storedConfiguration,
PwmSetting setting,
String profile
)
Expand Down
Expand Up @@ -26,7 +26,7 @@
import password.pwm.bean.UserIdentity;
import password.pwm.config.PwmSetting;
import password.pwm.config.SettingUIFunction;
import password.pwm.config.StoredConfiguration;
import password.pwm.config.stored.StoredConfigurationImpl;
import password.pwm.config.value.X509CertificateValue;
import password.pwm.error.*;
import password.pwm.event.SyslogAuditService;
Expand All @@ -45,7 +45,7 @@ public class SyslogCertImportFunction implements SettingUIFunction {
@Override
public String provideFunction(
PwmRequest pwmRequest,
StoredConfiguration storedConfiguration,
StoredConfigurationImpl storedConfiguration,
PwmSetting setting,
String profile
)
Expand Down
Expand Up @@ -29,7 +29,11 @@
import password.pwm.PwmApplication;
import password.pwm.PwmConstants;
import password.pwm.bean.UserIdentity;
import password.pwm.config.*;
import password.pwm.config.Configuration;
import password.pwm.config.PwmSetting;
import password.pwm.config.SettingUIFunction;
import password.pwm.config.UserPermission;
import password.pwm.config.stored.StoredConfigurationImpl;
import password.pwm.error.ErrorInformation;
import password.pwm.error.PwmError;
import password.pwm.error.PwmOperationalException;
Expand All @@ -47,7 +51,7 @@ public class UserMatchViewerFunction implements SettingUIFunction {
@Override
public Serializable provideFunction(
PwmRequest pwmRequest,
final StoredConfiguration storedConfiguration,
final StoredConfigurationImpl storedConfiguration,
final PwmSetting setting,
final String profile
)
Expand All @@ -67,7 +71,7 @@ public Serializable provideFunction(
public Collection<UserIdentity> discoverMatchingUsers(
final PwmApplication pwmApplication,
final int maxResultSize,
final StoredConfiguration storedConfiguration,
final StoredConfigurationImpl storedConfiguration,
final PwmSetting setting,
final String profile
)
Expand Down
Expand Up @@ -23,6 +23,7 @@
package password.pwm.config.profile;

import password.pwm.config.*;
import password.pwm.config.stored.StoredConfiguration;
import password.pwm.util.PasswordData;

import java.security.cert.X509Certificate;
Expand Down
Expand Up @@ -29,6 +29,7 @@
import com.novell.ldapchai.exception.ChaiValidationException;
import password.pwm.PwmConstants;
import password.pwm.config.*;
import password.pwm.config.stored.StoredConfiguration;
import password.pwm.config.value.ChallengeValue;
import password.pwm.cr.ChallengeItemBean;
import password.pwm.error.ErrorInformation;
Expand Down
Expand Up @@ -22,11 +22,9 @@

package password.pwm.config.profile;

import password.pwm.config.PwmSetting;
import password.pwm.config.PwmSettingCategory;
import password.pwm.config.StoredConfiguration;
import password.pwm.config.StoredValue;
import password.pwm.config.*;
import password.pwm.config.option.RecoveryVerificationMethods;
import password.pwm.config.stored.StoredConfiguration;
import password.pwm.config.value.VerificationMethodValue;

import java.util.*;
Expand Down

0 comments on commit 4a4a4aa

Please sign in to comment.