Multiline values Failed
Context:
- Spring boot 3.3.3
- Java JDK 21
- Maven 3.9.5
- Spring dotenv 4.0.0
What happened? Using a .env file I put my rsa key in the form JWT_PRIVATE="-----BEGIN PRIVATE KEY----- ...... -----END PRIVATE KEY-----" and the error occurs:
14:29:57.810 [main] ERROR org.springframework.boot.SpringApplication -- Application run failed io.github.cdimascio.dotenv.DotenvException: Malformed entry
I ran with ' ', with \n and the only solution I found was to use PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nKh9NV...\n-----END RSA PRIVATE KEY-----\n" as the dotenv faq says.
I report it here since the error indicates the exception from here and not spring dotenv.
With \n and ' '
In this you can see that when using JWT_PRIVATE as a long string it does pass and the error is the following JWT_PUBLIC
Attentive to your response or solution. Thanks for all.
After reviewing the tests, it seems that the only way to define a multiline value is using this format: MULTI_LINE=hello\nworld (.env).
However, there appears to be an issue in the unit test. The test expects a multiline string with escaped newlines (\\n), but it should handle actual newlines (\n) instead (BasicTests.java).
A workaround could involve defining the multiline values in the format MULTI_LINE=hello\nworld and then replacing the escaped newlines with actual newlines using .replace("\\n", "\n") in java code. In any case, it would be best to wait for a fix for this issue.