Hi Eric,

I see in JIRA that you found the bug. Good catch. Thanks for the quick response.
Looking forward to Apiman v1.2.1.Final

Regards, Ton

2016-01-19 15:28 GMT+01:00 Eric Wittmann <eric.wittmann@redhat.com>:
Yes, environment variables are expected to work.  Let me write up a bug and I can look into the problem today.

Note that this is the code being used to resolve a single property by key:

https://github.com/apiman/apiman/blob/master/common/util/src/main/java/io/apiman/common/util/ApimanStrLookup.java

Here is a JIRA issue for tracking purposes:

https://issues.jboss.org/browse/APIMAN-904

-Eric

On 1/19/2016 5:44 AM, Ton Swieb wrote:
Hi,

I just tried it with a system property instead of a environment
property. With a system property it works, but they are a bit cumbersome
to supply to the apiman-wildfly docker image.
Are environment variables expected to work?

Regards, Ton



2016-01-19 11:25 GMT+01:00 Ton Swieb <ton@finalist.nl
<mailto:ton@finalist.nl>>:

    Hi,

    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 ishttps://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.

    Any ideas?

    Regards, Ton




_______________________________________________
Apiman-user mailing list
Apiman-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/apiman-user