diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt index 0be5b889..4ea442ed 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt @@ -30,7 +30,7 @@ class PasswordMD5InterceptorTest : BaseInterceptorTest() { val salt = requestLine.split('&').find { it.startsWith("s=") } ?.substringAfter('=')?.substringBefore(" ") val expectedToken = String(Hex.encodeHex(MessageDigest.getInstance("MD5") - .digest("$password$salt".toByteArray()), false)) + .digest("$password$salt".toByteArray()), true)) requestLine `should contain` "t=$expectedToken" } } diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt b/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt index 0e6312e8..9070c207 100644 --- a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt +++ b/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt @@ -23,7 +23,7 @@ class PasswordMD5Interceptor(private val password: String) : Interceptor { private val passwordMD5Hash: String by lazy { try { val md5Digest = MessageDigest.getInstance("MD5") - md5Digest.digest("$password$salt".toByteArray()).toHexBytes() + md5Digest.digest("$password$salt".toByteArray()).toHexBytes().toLowerCase() } catch (e: NoSuchAlgorithmException) { throw IllegalStateException(e) }