Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.8.0 doesn't work on servers but does on local machine #62

Open
i5-650 opened this issue Jan 22, 2025 · 5 comments
Open

1.8.0 doesn't work on servers but does on local machine #62

i5-650 opened this issue Jan 22, 2025 · 5 comments

Comments

@i5-650
Copy link

i5-650 commented Jan 22, 2025

Hello !

I'm using deepl 1.8.0 after i used the 1.7.0 and I face a strange issue:

On my local machine (MacOS), it works fine. The token is a free tier token, therefore it ends with with :fx.
However, on the server, the Deepl library throws an error saying:

Illegal character(s) in message header value: DeepL-Auth-Key XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:fx.

If I switch back ti 1.7.0, it works.

@JanEbbing
Copy link
Member

Hm, I can run the e2e tests with a free key. Can you give some more information about your server please (eg operating system)? Did you update anything else along with the java library?
Can you provide the full stacktrace?
Can you try making a curl request to our API (eg the usage endpoint) with that auth key?

e.g.

$ curl -X GET 'https://api.deepl.com/v2/usage' \
-H 'Authorization: DeepL-Auth-Key XXXXX:fx' \
-H 'Content-Type: application/json'

@i5-650
Copy link
Author

i5-650 commented Jan 22, 2025

Hello again,

I figured out the issue:
I'm on a k8s an my deepl key is a secret. And, because it needs to be written in base64 for k8s cluster, I did this:
echo 'my-key' | base64. I didn't notice that echo added a \n.

Others API that I use do a strip before using the credentials, therefore I didn't suspect it at first.
I should have been more careful, but it would be great to add a strip in the deepl library.

@JanEbbing
Copy link
Member

Ahh, I see. I can create a ticket in the backlog, this does seem useful.

timazhum added a commit to timazhum/deepl-java that referenced this issue Feb 13, 2025
Fixing the issue raised in DeepLcom#62

Problem: auth key with leading / trailing whitespaces is throwing exceptions. For example, assigning the secret via `echo` leaves a trailing `\n`.

Solution: strip input auth key as an input sanitization procedure

Notice: Java 8 does not support `String.strip()`, while `String.trim()` does not support Unicode whitespaces. Therefore, using regex expressions for stripping.
@timazhum
Copy link

@JanEbbing proposed a solution for this issue - #64
Open to feedback, if any

@i5-650
Copy link
Author

i5-650 commented Feb 15, 2025

Looks good to me !
That will prevent people from doing the same mistake as i did

timazhum added a commit to timazhum/deepl-java that referenced this issue Feb 17, 2025
Fixing the issue raised in DeepLcom#62

Problem: auth key with leading / trailing whitespaces is throwing exceptions. For example, assigning the secret via `echo` leaves a trailing `\n`.

Solution: strip input auth key as an input sanitization procedure

Notice: Java 8 does not support `String.strip()`, while `String.trim()` does not support Unicode whitespaces. We anticipate ASCII only input and utilizing `trim()` for simplicity.
timazhum added a commit to timazhum/deepl-java that referenced this issue Feb 19, 2025
Fixing the issue raised in DeepLcom#62

Problem: auth key with leading / trailing whitespaces is throwing exceptions. For example, assigning the secret via `echo` leaves a trailing `\n`.

Solution: strip input auth key as an input sanitization procedure

Notice: Java 8 does not support `String.strip()`, while `String.trim()` does not support Unicode whitespaces. We anticipate ASCII only input and utilizing `trim()` for simplicity.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants