-
Bug
-
Resolution: Done
-
Critical
-
None
-
None
-
None
System properties work, but when setting an environment variable, it does not get resolved. From the mailing list:
I tried to take the property placeholder functionality for a test drive, which should be available as of v1.2.0.Final. See JIRA: https://issues.jboss.org/browse/APIMAN-831
But for some reason I do not get it to work. Did I configure something wrong or am I running into a bug?
I use the property placeholder in the keycloak plugin which is preconfigured in a Docker image.
I defined the realm property of the Keycloak plugin as ${external_url}/auth/realms/apiman
I started my Docker image with the -e external_url=https://192.168.99.100:8443 parameter to set the environment variable within the Docker container.
When I try to access the API I get a failure in Keycloak Plugin saying:
{
"type": "Authentication",
"failureCode": 11004,
"responseCode": 401,
"message": "Token audience doesn't match domain. Token issuer is https://192.168.99.100:8443/auth/realms/apiman, but URL from configuration is ${external_url}/auth/realms/apiman",
"headers": {}
}
It looks like the property placeholder did not get resolved correctly.
When I have a look in the Docker image using docker exec -ti <name> /binbash and do a list of the environment variables. The environment variable is correctly defined:
MacBook-Pro-van-Ton:~ ton$ docker exec -ti tiny_wilson /bin/bash [jboss@43c099aae441 ~]$ export declare -x APIMAN_VERSION="1.2.0.Final" .... declare -x external_url="https://192.168.99.100:8443"
I also tried setting the property to ${external_url} without the '/auth/realms/apiman' suffix. I figured that it might perhaps will do a full String comparison, but that did not work either.