You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Basically, the HttpClient tries to construct the Authorization header as follows:
Add colon to the end of the Intercom token
Encode that in base64
Add it to a Basic header
So it ends up being
Authorization:Basic [newly encoded token value]
I believe Basic is used when you want to send a username/password, but since we just have a token, it should be Bearer. Also the colon is not needed, the token value should be used as-is.
Version info
intercom-java version: 2.7.1
Java version: 1.7, 1.8
Expected behavior
API connects to Intercom and pulls data.
Actual behavior
HttpClient fails to make connection due to bad header.
SEVERE: Servlet.service() for servlet [datacenterhawk] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Illegal character(s) in message header value: Basic W0JANzAwOTFhYTI6
] with root cause
java.lang.IllegalArgumentException: Illegal character(s) in message header value: Basic W0JANzAwOTFhYTI6
at sun.net.www.protocol.http.HttpURLConnection.checkMessageHeader(HttpURLConnection.java:541)
at sun.net.www.protocol.http.HttpURLConnection.isExternalMessageHeaderAllowed(HttpURLConnection.java:492)
at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(HttpURLConnection.java:3075)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.setRequestProperty(HttpsURLConnectionImpl.java:325)
at io.intercom.api.HttpClient.applyHeaders(HttpClient.java:224)
at io.intercom.api.HttpClient.initializeConnection(HttpClient.java:145)
at io.intercom.api.HttpClient.executeHttpMethod(HttpClient.java:106)
at io.intercom.api.HttpClient.get(HttpClient.java:86)
at io.intercom.api.HttpClient.get(HttpClient.java:82)
at io.intercom.api.DataResource.list(DataResource.java:66)
at io.intercom.api.Company.list(Company.java:59)
The text was updated successfully, but these errors were encountered:
Seems to be the same as #238 .
Basically, the HttpClient tries to construct the Authorization header as follows:
So it ends up being
Authorization:Basic [newly encoded token value]
I believe Basic is used when you want to send a username/password, but since we just have a token, it should be Bearer. Also the colon is not needed, the token value should be used as-is.
Version info
Expected behavior
API connects to Intercom and pulls data.
Actual behavior
HttpClient fails to make connection due to bad header.
Steps to reproduce
Logs
The text was updated successfully, but these errors were encountered: