src/main/java/de/jalin/ldapadmin/ldap/LDAPConfig.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/de/jalin/ldapadmin/web/AbstractLDAPServlet.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/de/jalin/ldapadmin/web/NaiveTrustManager.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/de/jalin/ldapadmin/web/ResetPasswordServlet.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/config.properties | ●●●●● patch | view | raw | blame | history | |
src/main/webapp/WEB-INF/web.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/de/jalin/ldapadmin/ldap/LDAPConfig.java
New file @@ -0,0 +1,108 @@ package de.jalin.ldapadmin.ldap; import de.jalin.ldapadmin.server.LDAPUriParser; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; public class LDAPConfig { private static LDAPConfig config = null; private String ldapProviderUrl; private String ldapSecurityPrincipal; private String ldapSecurityPassword; private String ldapDistinguishedName; private String ldapHost; private String ldapPort; private boolean ldapUseTLS; private String smtpFromAddress; private String smtpHost; private String smtpPort; private LDAPConfig() { ldapProviderUrl = "ldap://localhost:10389/dc=domain,dc=example,dc=com"; ldapDistinguishedName = "dc=domain,dc=example,dc=com"; ldapHost = "localhost"; ldapPort = "10389"; ldapUseTLS = false; ldapSecurityPrincipal = "uid=admin,ou=system"; ldapSecurityPassword = "secret"; smtpHost = "localhost"; smtpPort = "25"; smtpFromAddress = "nobody@example.com"; try { final Properties props = loadConfig(); ldapProviderUrl = props.getProperty("provider.url", ldapProviderUrl); ldapSecurityPrincipal = props.getProperty("security.principal", ldapSecurityPrincipal); ldapSecurityPassword = props.getProperty("security.password", ldapSecurityPassword); smtpHost = props.getProperty("smtp.host", smtpHost); smtpPort = props.getProperty("smtp.port", smtpPort); smtpFromAddress = props.getProperty("smtp.from", smtpFromAddress); final LDAPUriParser uriParser = new LDAPUriParser(ldapProviderUrl); ldapDistinguishedName = uriParser.getDn(); ldapHost = uriParser.getHost(); ldapPort = uriParser.getPort(); ldapUseTLS = uriParser.isUseTLS(); } catch (IOException ex) { Logger.getLogger(LDAPConfig.class.getName()).log(Level.SEVERE, null, ex); } } public static LDAPConfig getConfig() { if (config == null) { config = new LDAPConfig(); } return config; } public String getLdapProviderUrl() { return ldapProviderUrl; } public String getLdapSecurityPrincipal() { return ldapSecurityPrincipal; } public String getLdapSecurityPassword() { return ldapSecurityPassword; } public String getLdapDistinguishedName() { return ldapDistinguishedName; } public String getLdapHost() { return ldapHost; } public String getLdapPort() { return ldapPort; } public boolean isLdapUseTLS() { return ldapUseTLS; } public String getSmtpHost() { return smtpHost; } public String getSmtpPort() { return smtpPort; } public String getSmtpFromAddress() { return smtpFromAddress; } private Properties loadConfig() throws IOException { final InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config.properties"); Properties config = new Properties(); config.load(inputStream); return config; } } src/main/java/de/jalin/ldapadmin/web/AbstractLDAPServlet.java
@@ -13,8 +13,10 @@ import de.jalin.ldapadmin.beans.Group; import de.jalin.ldapadmin.beans.User; import de.jalin.ldapadmin.ldap.LDAPConfig; import de.jalin.ldapadmin.ldap.LDAPSession; import de.jalin.ldapadmin.ldap.LDAPSessionException; import java.util.logging.Level; import java.util.logging.Logger; public class AbstractLDAPServlet extends HttpServlet { @@ -27,7 +29,7 @@ private SortedMap<String, Group> groups; protected LDAPSession ldapSession; protected Properties config; protected LDAPConfig config; protected void loadData() { users = new TreeMap<>(); @@ -45,14 +47,11 @@ @Override public void init() throws ServletException { super.init(); final InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config.properties"); config = new Properties(); try { config.load(inputStream); ldapSession = new LDAPSession(config.getProperty("provider.url"), config.getProperty("security.principal"), config.getProperty("security.password")); } catch (IOException | LDAPSessionException e) { LOG.severe(e.getMessage()); throw new ServletException(e); config = LDAPConfig.getConfig(); ldapSession = new LDAPSession(config.getLdapProviderUrl(), config.getLdapSecurityPrincipal(), config.getLdapSecurityPassword()); } catch (LDAPSessionException ex) { Logger.getLogger(AbstractLDAPServlet.class.getName()).log(Level.SEVERE, null, ex); } } src/main/java/de/jalin/ldapadmin/web/NaiveTrustManager.java
File was deleted src/main/java/de/jalin/ldapadmin/web/ResetPasswordServlet.java
@@ -25,6 +25,7 @@ import de.jalin.ldapadmin.ldap.LDAPSessionException; import de.jalin.ldapadmin.ldap.SimplePasswordException; import de.jalin.ldapadmin.ldap.UsersDAO; import org.apache.commons.lang.CharEncoding; @WebServlet(name = "ResetPassword", urlPatterns = {"/passwordreset"}, loadOnStartup = 1) public class ResetPasswordServlet extends AbstractLDAPServlet { @@ -38,9 +39,9 @@ @Override public void init() throws ServletException { super.init(); smtpHost = config.getProperty("smtp.host", "localhost"); smtpPort = config.getProperty("smtp.port", "25"); smtpFrom = config.getProperty("smtp.from", "nobody@localhost"); smtpHost = config.getSmtpHost(); smtpPort = config.getSmtpPort(); smtpFrom = config.getSmtpFromAddress(); } @Override @@ -164,7 +165,7 @@ } private static void smtpSend(final String smtpHost, final String smtpPort, final Messages messages, final String fromAddress, final String toAddress, final String subject, final String text) throws IOException { final SMTPClient client = new SMTPClient(); final SMTPClient client = new SMTPClient(CharEncoding.ISO_8859_1); final String canonicalHostName = InetAddress.getLocalHost().getHostName(); client.connect(smtpHost, Integer.parseInt(smtpPort)); int reply = client.getReplyCode(); @@ -180,7 +181,7 @@ } try (PrintWriter wr = new PrintWriter(sendMessageData)) { final SimpleSMTPHeader header = new SimpleSMTPHeader(fromAddress, toAddress, subject); header.addHeaderField("Content-Type", "text/plain; charset=ISO-8859-15"); header.addHeaderField("Content-Type", "text/plain; charset=ISO-8859-1"); header.addHeaderField("Content-Transfer-Encoding", "8bit"); wr.write(header.toString()); wr.write(text); src/main/resources/config.properties
@@ -2,3 +2,4 @@ security.principal=uid=admin,ou=system security.password=streng-geheim smtp.host=localhost smtp.from=nobody@example.com src/main/webapp/WEB-INF/web.xml
@@ -3,10 +3,6 @@ <session-config> <tracking-mode>COOKIE</tracking-mode> </session-config> <context-param> <param-name>uri</param-name> <param-value>ldap://localhost:10389/dc=domain,dc=example,dc=com</param-value> </context-param> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/css/*</url-pattern>