Commit a49d4b80 by Tuomas Riihimäki

Rest changes

1 parent 78dcf6db
package fi.codecrew.moya.utilities; package fi.codecrew.moya.utilities;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.Random; import java.util.Random;
...@@ -19,6 +20,44 @@ public class PasswordFunctions { ...@@ -19,6 +20,44 @@ public class PasswordFunctions {
private static final boolean UGLY_FIX = true; private static final boolean UGLY_FIX = true;
private static final Charset LATIN1 = Charset.forName("ISO-8859-15");
public static final String calculateSha1(String source)
{
String ret = null;
try {
final MessageDigest algo = MessageDigest.getInstance("SHA");
final byte[] resultByte = algo.digest(source.getBytes(LATIN1));
ret = new String(Hex.encodeHex(resultByte)).toUpperCase();
} catch (NoSuchAlgorithmException e) {
logger.warn("THIS SHOULD NEVER HAPPEN! (SHA1 hashfunction should always exist)", e);
}
return ret;
}
/**
* Returns the SHA1 sum of the @param fields separated by @param separator e
* eg separator = "+" fields {"ONE", "TWO", "THREE"} return value
* ONE+TWO+THREE
*
* @param separator
* @param fields
* @return
*/
public static final String calculateSha1(String separator, String... fields)
{
String str = mkSeparatedString(separator, fields);
String ret = null;
try {
final MessageDigest algo = MessageDigest.getInstance("SHA");
final byte[] resultByte = algo.digest(str.getBytes(LATIN1));
ret = new String(Hex.encodeHex(resultByte)).toUpperCase();
} catch (NoSuchAlgorithmException e) {
logger.warn("THIS SHOULD NEVER HAPPEN! (SHA1 hashfunction should always exist)", e);
}
return ret;
}
/** /**
* Returns the MD5 sum of the @param fields separated by @param separator e * Returns the MD5 sum of the @param fields separated by @param separator e
* eg separator = "+" fields {"ONE", "TWO", "THREE"} return value * eg separator = "+" fields {"ONE", "TWO", "THREE"} return value
...@@ -28,9 +67,13 @@ public class PasswordFunctions { ...@@ -28,9 +67,13 @@ public class PasswordFunctions {
* @param fields * @param fields
* @return * @return
*/ */
public static String calculateMd5(String separator, String... fields) public static final String calculateMd5(String separator, String... fields)
{ {
return calculateMd5(mkSeparatedString(separator, fields));
}
public static final String mkSeparatedString(String separator, String... fields)
{
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
boolean first = true; boolean first = true;
for (String field : fields) for (String field : fields)
...@@ -42,17 +85,15 @@ public class PasswordFunctions { ...@@ -42,17 +85,15 @@ public class PasswordFunctions {
} }
sb.append(field); sb.append(field);
} }
logger.info("Calculating md5 from {}", sb.toString()); return sb.toString();
return calculateMd5(sb.toString());
} }
public static String calculateMd5(String str) public static final String calculateMd5(String str)
{ {
String ret = null; String ret = null;
try { try {
final MessageDigest algo = MessageDigest.getInstance("MD5"); final MessageDigest algo = MessageDigest.getInstance("MD5");
final byte[] resultByte = algo.digest(str.getBytes()); final byte[] resultByte = algo.digest(str.getBytes(LATIN1));
ret = new String(Hex.encodeHex(resultByte)).toUpperCase(); ret = new String(Hex.encodeHex(resultByte)).toUpperCase();
} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {
logger.warn("THIS SHOULD NEVER HAPPEN! (md5 hashfunction should always exist)", e); logger.warn("THIS SHOULD NEVER HAPPEN! (md5 hashfunction should always exist)", e);
......
...@@ -3,7 +3,9 @@ package fi.codecrew.moya.rest; ...@@ -3,7 +3,9 @@ package fi.codecrew.moya.rest;
import javax.ws.rs.ApplicationPath; import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application; import javax.ws.rs.core.Application;
@ApplicationPath("/rest") @ApplicationPath(RestApplicationEntrypoint.REST_PATH)
public class RestApplicationEntrypoint extends Application { public class RestApplicationEntrypoint extends Application {
public static final String REST_PATH = "/rest";
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!