Aspose-words-cloud-ruby client can not authenticate to self-hosted docker container since commit 729390d

I’ve been testing out your docker image aspose/words-cloud and it looks like commit 729390d broke authorization with self-hosted containers.

AsposeWordsCloud::ApiError (Forbidden):                                                                                                                        
                                                                                                                                                                                                                                                                                                                               
aspose_words_cloud (23.7.0) lib/aspose_words_cloud/api_client.rb:91:in `call_api'                                                                                                                                                                                                                                              
aspose_words_cloud (23.7.0) lib/aspose_words_cloud/api/words_api.rb:14214:in `request_token'                                                                                                                                                                                                                                   
aspose_words_cloud (23.7.0) lib/aspose_words_cloud/api/words_api.rb:42:in `initialize' 

As a sanity check, I can confirm that the “old” path still works:

$ curl -v 'http://192.168.1.198:8080/connect/token' -d 'grant_type=client_credentials&client_id=james&client_secret=supersecretpassword' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: application/json'
*   Trying 192.168.1.198:8080...
* Connected to 192.168.1.198 (192.168.1.198) port 8080 (#0)
> POST /connect/token HTTP/1.1
> Host: 192.168.1.198:8080
> User-Agent: curl/8.1.2
> Content-Type: application/x-www-form-urlencoded
> Accept: application/json
> Content-Length: 79
> 
< HTTP/1.1 200 OK
< Content-Length: 175
< Content-Type: application/json; charset=utf-8
< Date: Wed, 02 Aug 2023 14:40:00 GMT
< Server: Kestrel
< api-supported-versions: 4.0
< 
{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2OTA5ODcyMDEsImV4cCI6MTY5MTU5MjAwMSwiaWF0IjoxNjkwOTg3MjAxfQ.tgVbhSqWRfyJ0_gnodYz2B1BY1yR2BryLZEELq7qK8M"
* Connection #0 to host 192.168.1.198 left intact
}

Same error seen with the ruby client using the “new” path:

$ curl -v 'http://192.168.1.198:8080/v4.0/words/connect/token' -d 'grant_type=client_credentials&client_id=james&client_secret=supersecretpassword' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: application/json'
*   Trying 192.168.1.198:8080...
* Connected to 192.168.1.198 (192.168.1.198) port 8080 (#0)
> POST /v4.0/words/connect/token HTTP/1.1
> Host: 192.168.1.198:8080
> User-Agent: curl/8.1.2
> Content-Type: application/x-www-form-urlencoded
> Accept: application/json
> Content-Length: 79
> 
< HTTP/1.1 403 Forbidden
< Content-Length: 0
< Date: Wed, 02 Aug 2023 14:43:33 GMT
< Server: Kestrel
< 
* Connection #0 to host 192.168.1.198 left intact

My guess is that the app in the running container doesn’t actually handle the path “/v4.0/words/connect/token.” If so, I’d guess that an up-to-date docker image is due for a release. Otherwise, I’d need to be able to configure the Ruby client to set the token URL to just “/connect/token” (without the /v4.0/words prefixed) but as you can see in that commit the path is hard-coded with no way to override it.

What are my options here to continue using your ruby client with your docker image for self hosting? In the meantime, I can pin the client dependency to 23.4.0 (the hardcoded path was introduced in 23.6.0), but would like to make sure we can eventually handle updating to a later version of the client (and the docker image) down the road.

@james-ontra
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): WORDSCLOUD-2425

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.