Skip to content

Commit

Permalink
Issue #56 - address users issues with ldap login
Browse files Browse the repository at this point in the history
  • Loading branch information
jmcc0nn3ll committed Aug 3, 2016
1 parent 4b92062 commit 4bf885c
Showing 1 changed file with 19 additions and 19 deletions.
Expand Up @@ -43,6 +43,8 @@
import javax.security.auth.login.LoginException;

import org.eclipse.jetty.jaas.callback.ObjectCallback;
import org.eclipse.jetty.util.B64Code;
import org.eclipse.jetty.util.TypeUtil;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger;
import org.eclipse.jetty.util.security.Credential;
Expand Down Expand Up @@ -687,38 +689,36 @@ public Hashtable<Object, Object> getEnvironment()
return env;
}

public static String convertCredentialJettyToLdap(String encryptedPassword)
{
if ("MD5:".startsWith(encryptedPassword.toUpperCase(Locale.ENGLISH)))
{
return "{MD5}" + encryptedPassword.substring("MD5:".length(), encryptedPassword.length());
}

if ("CRYPT:".startsWith(encryptedPassword.toUpperCase(Locale.ENGLISH)))
{
return "{CRYPT}" + encryptedPassword.substring("CRYPT:".length(), encryptedPassword.length());
}

return encryptedPassword;
}

public static String convertCredentialLdapToJetty(String encryptedPassword)
{
if (encryptedPassword == null)
{
return encryptedPassword;
return null;
}

if ("{MD5}".startsWith(encryptedPassword.toUpperCase(Locale.ENGLISH)))
if (encryptedPassword.toUpperCase(Locale.ENGLISH).startsWith("{MD5}"))
{
return "MD5:" + encryptedPassword.substring("{MD5}".length(), encryptedPassword.length());
String src = encryptedPassword.substring("{MD5}".length(), encryptedPassword.length());
return "MD5:" + base64ToHex(src);
}

if ("{CRYPT}".startsWith(encryptedPassword.toUpperCase(Locale.ENGLISH)))
if (encryptedPassword.toUpperCase(Locale.ENGLISH).startsWith("{CRYPT}"))
{
return "CRYPT:" + encryptedPassword.substring("{CRYPT}".length(), encryptedPassword.length());
}

return encryptedPassword;
}

private static String base64ToHex(String src)
{
byte[] bytes = B64Code.decode(src);
return TypeUtil.toString(bytes, 16);
}

private static String hexToBase64(String src)
{
byte[] bytes = TypeUtil.fromHexString(src);
return new String(B64Code.encode(bytes));
}
}

0 comments on commit 4bf885c

Please sign in to comment.