package elw.web;
import elw.dao.ConfigLoader;
import elw.webauth.ServerConfigAuth;
import org.akraievoy.couch.CouchSetup;
import org.apache.commons.configuration.CompositeConfiguration;
import java.util.Map;
import java.util.Properties;
import java.util.SortedMap;
import java.util.TreeMap;
/**
* This bean delegates to specific CompositeConfiguration, which is
* set up to be reloaded in runtime.
*/
public class ElwServerConfig implements ServerConfigAuth, CouchSetup {
private final CompositeConfiguration configuration;
public ElwServerConfig() {
configuration = ConfigLoader.getConfiguration("elw");
}
public String getBaseUrl() {
return configuration.getString("auth.baseUrl");
}
public boolean isRelyingPartyIdent() {
return configuration.getBoolean("auth.openId.relyingPartyIdent");
}
public String getFormRedirect() {
return configuration.getString("auth.openId.formRedirect");
}
public String getFormRedirectParam() {
return configuration.getString("auth.openId.formRedirectParam");
}
public long getSessionExpiryMillis() {
return configuration.getLong("auth.sessionExpiryMillis");
}
public String getSmtpUser() {
return configuration.getString("auth.smtp.user");
}
public String getSmtpPass() {
return configuration.getString("auth.smtp.pass");
}
public String getSmtpFrom() {
return configuration.getString("auth.smtp.from");
}
public String getSmtpSubject() {
return configuration.getString("auth.smtp.subject");
}
public boolean getSmtpAuth() {
return configuration.getBoolean("auth.smtp.auth");
}
public boolean getSmtpStartTls() {
return configuration.getBoolean("auth.smtp.startTls");
}
public String getSmtpHost() {
return configuration.getString("auth.smtp.host");
}
public int getSmtpPort() {
return configuration.getInt("auth.smtp.port");
}
public String getMailProtocol() {
return configuration.getString("auth.mailProtocol");
}
public String getSmtpSocketFactory() {
return configuration.getString("auth.smtp.socketFactory");
}
public boolean isSmtpDebug() {
return configuration.getBoolean("auth.smtp.debug");
}
public long getMailTargetDelayMillis() {
return configuration.getLong("auth.mailTargetDelayMillis");
}
public long getMailSourceDelayMillis() {
return configuration.getLong("auth.mailSourceDelayMillis");
}
public long getMailResponseTimeoutMillis() {
return configuration.getLong("auth.mailRespTimeoutMillis");
}
public String getMailTokenSalt() {
return configuration.getString("auth.mailTokenSalt");
}
public String getMailBody() {
return configuration.getString("auth.mail.body");
}
public String getMailResponseForm() {
return configuration.getString("auth.mail.responseForm");
}
public String getCouchDbUrl() {
return configuration.getString("couchdb.url");
}
public String getCouchDbUser() {
return configuration.getString("couchdb.user");
}
public String getCouchDbPassword() {
return configuration.getString("couchdb.password");
}
public Map<String, String> getCouchDbNames() {
final Properties dbNameProps = configuration.getProperties(
"couchdb.dbnames"
);
final SortedMap<String, String> dbNameMap =
new TreeMap<String, String>();
for (Map.Entry<Object, Object> entry : dbNameProps.entrySet()) {
dbNameMap.put(
String.valueOf(entry.getKey()),
String.valueOf(entry.getValue())
);
}
return dbNameMap;
}
}