Scala 授权 header - Akka HTTP IllegalArgumentException
Scala Authorization header - Akka HTTP IllegalArgumentException
我正在尝试在 Scala 中请求发送 user/pass:
def makeRequestWithRadiusHeader(header: String) = {
val urlEncHeaderVal = java.net.URLEncoder.encode(s"Basic $header", "utf-8")
val request = exampleNmsRequest() ~> addHeader("Authorization", urlEncHeaderVal)
makeRequest(request)
}
其中 header 是 "user:password" 并且在 addHeader 上我得到这样的错误:
java.lang.IllegalArgumentException: Illegal HTTP header 'Authorization': Invalid input '%', expected token68-start, '=', OWS or 'EOI' (line 1, column 11): Basic+user%3Apassword
如果我尝试不编码,我会得到与“:”相同的错误
我已经解决了它给函数 makeRequestWithRadiusHeader 一个 base64 转换参数。
val validRadiusHeader = BaseEncoding.base64().encode("aladdin:OpenSesame".getBytes(Charsets.UTF_8))
val response = makeRequestWithRadiusHeader(validRadiusHeader)
这种方式效果很好。这是基本访问身份验证的工作方式。
我正在尝试在 Scala 中请求发送 user/pass:
def makeRequestWithRadiusHeader(header: String) = {
val urlEncHeaderVal = java.net.URLEncoder.encode(s"Basic $header", "utf-8")
val request = exampleNmsRequest() ~> addHeader("Authorization", urlEncHeaderVal)
makeRequest(request)
}
其中 header 是 "user:password" 并且在 addHeader 上我得到这样的错误:
java.lang.IllegalArgumentException: Illegal HTTP header 'Authorization': Invalid input '%', expected token68-start, '=', OWS or 'EOI' (line 1, column 11): Basic+user%3Apassword
如果我尝试不编码,我会得到与“:”相同的错误
我已经解决了它给函数 makeRequestWithRadiusHeader 一个 base64 转换参数。
val validRadiusHeader = BaseEncoding.base64().encode("aladdin:OpenSesame".getBytes(Charsets.UTF_8))
val response = makeRequestWithRadiusHeader(validRadiusHeader)
这种方式效果很好。这是基本访问身份验证的工作方式。