Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Accented character in a request to Service Desk API through OAuth client

Agence du Numérique
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
June 8, 2018

Hi,

We use Service Desk API to post bug fix requests from our french speaking customers in our Jira Service Desk Server. We use an oauth node.js client to secure the dialog between our website and the Jira Service Desk.

Some field values can contain some french accented characters as é, è, à.

When we try to post a request with accented characters through a node oauth client wrapper, the service desk API send us a 500 error. We don't have this problem with basic auth but it's less secure.

Here is a typical JSON body request with accented characters :

{
"serviceDeskId":3,
"requestTypeId":71,
"requestFieldValues":{
"summary": "Avec des caractères accentués",
"description":"L'été sera comme ça",
"customfield_10200":{
"value":"DigitalWallonia.be"
},
"customfield_10203":"http://vm-nodejs-cw-dev.digitalwallonia.be:8080/fr",
"environment":"*User-Agent*: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 *Screen Resolution* 1920 X 1040"
}
}

Here is the beginning of 500 error I've got when trying to post a request with accented character in JSON value.

<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><status><status-code>500</status-code><message>Unexpected end-of-input in VALUE_STRING\n at [Source: org.apache.catalina.connector.CoyoteInputStream@75787190; line: 1, column: 883]</message><stack-trace>org.codehaus.jackson.JsonParseException: Unexpected end-of-input in VALUE_STRING\n at [Source: org.apache.catalina.connector.CoyoteInputStream@75787190; line: 1, column: 883]\n\tat org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1433)\n\tat org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:521)\n\tat org.codehaus.jackson.impl.JsonParserMinimalBase._reportInvalidEOF(JsonParserMinimalBase.java:454)\n\tat org.codehaus.jackson.impl.JsonParserMinimalBase._reportInvalidEOF(JsonParserMinimalBase.java:448)\n\tat org.codehaus.jackson.impl.JsonParserBase.loadMoreGuaranteed(JsonParserBase.java:426)\n\tat org.codehaus.jackson.impl.Utf8StreamParser._finishString2(Utf8StreamParser.java:1924)\n\tat org.codehaus.jackson.impl.Utf8StreamParser._finishString(Utf8StreamParser.java:1905)\n\tat org.codehaus.jackson.impl.Utf8StreamParser.getText(Utf8StreamParser.java:276)\n\tat org.codehaus.jackson.map.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:59)\n\tat org.codehaus.jackson.map.deser.std.MapDeserializer._readAndBind(MapDeserializer.java:319)\n\tat org.codehaus.jackson.map.deser.std.MapDeserializer.deserialize(MapDeserializer.java:249)\n\tat org.codehaus.jackson.map.deser.std.MapDeserializer.deserialize(MapDeserializer.java:33)\n\tat org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299)\n\tat org.codehaus.jackson.map.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:905)\n\tat org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObjectUsingNonDefault(BeanDeserializer.java:739)\n\tat org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:683)\n\tat org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)\n\tat org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2704)\n\tat org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1315)\n\tat org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)\n\tat com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:490)\n\tat com.sun.jersey.spi.container.AdaptingContainerRequest.getEntity(AdaptingContainerRequest.java:236)\n\tat com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)\n\tat com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:86)\n\tat com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$EntityParamInInvoker.getParams(DispatchProviderHelper.java:133)\n\tat com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker._dispatch(DispatchProviderHelper.java:188)\n\tat com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)\n\tat com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)\n\tat com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)\n\tat com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)\n\tat com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)\n\tat com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)\n\tat com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)\n\tat com.atlassian.plugins.rest.modul

Can you advise us ?

Thanks

1 answer

0 votes
Andy Heinzer
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 8, 2018

What kind of headers does this oauth node use in order to send these API requests?  I found a related error over in https://stackoverflow.com/questions/36720168/could-not-read-json-unexpected-end-of-input-in-field-name that seems to indicate the headers used for this request might not be sufficient for the REST API call being made.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events