1
0
mirror of https://github.com/ultrasonic/ultrasonic synced 2025-02-11 09:10:57 +01:00

Fix subsonic accepts only lowercase md5 password hash.

Signed-off-by: Yahor Berdnikau <egorr.berd@gmail.com>
This commit is contained in:
Yahor Berdnikau 2017-12-02 11:48:23 +01:00
parent 0deed54a9e
commit 1c56d6459b
2 changed files with 2 additions and 2 deletions

View File

@ -30,7 +30,7 @@ class PasswordMD5InterceptorTest : BaseInterceptorTest() {
val salt = requestLine.split('&').find { it.startsWith("s=") } val salt = requestLine.split('&').find { it.startsWith("s=") }
?.substringAfter('=')?.substringBefore(" ") ?.substringAfter('=')?.substringBefore(" ")
val expectedToken = String(Hex.encodeHex(MessageDigest.getInstance("MD5") val expectedToken = String(Hex.encodeHex(MessageDigest.getInstance("MD5")
.digest("$password$salt".toByteArray()), false)) .digest("$password$salt".toByteArray()), true))
requestLine `should contain` "t=$expectedToken" requestLine `should contain` "t=$expectedToken"
} }
} }

View File

@ -23,7 +23,7 @@ class PasswordMD5Interceptor(private val password: String) : Interceptor {
private val passwordMD5Hash: String by lazy { private val passwordMD5Hash: String by lazy {
try { try {
val md5Digest = MessageDigest.getInstance("MD5") val md5Digest = MessageDigest.getInstance("MD5")
md5Digest.digest("$password$salt".toByteArray()).toHexBytes() md5Digest.digest("$password$salt".toByteArray()).toHexBytes().toLowerCase()
} catch (e: NoSuchAlgorithmException) { } catch (e: NoSuchAlgorithmException) {
throw IllegalStateException(e) throw IllegalStateException(e)
} }