I'm trying in Scala to make a request to send a 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)
}
where header is "user:password" and on addHeader I get an error like this:
java.lang.IllegalArgumentException: Illegal HTTP header 'Authorization': Invalid input '%', expected token68-start, '=', OWS or 'EOI' (line 1, column 11): Basic+user%3Apassword
If I try without encoding, I get the same error with ':'
I've solved it giving to the function makeRequestWithRadiusHeader a base64 converted parameter.
val validRadiusHeader = BaseEncoding.base64().encode("aladdin:OpenSesame".getBytes(Charsets.UTF_8))
val response = makeRequestWithRadiusHeader(validRadiusHeader)
This way it works fine. It is the way Basic access authentication works.