如何动态地将值传递给XML?

时间:2018-03-20 13:30:17

标签: java xml spring aws-regions

我有一个使用SAML元数据的安全上下文xml。

security-context.xml的原始结构:

...
<bean class="org.opensaml.util.resource.ClasspathResource">
    <constructor-arg value="saml/metadata/something-#{systemProperties['application.environment']}.xml"
</bean>
...

目录:

saml
    -metadata
        -something-test.xml
        -something-prod.xml
        ...

我想将我的应用程序部署到Amazon US-West-2和US-East-1区域。 我是否可以在security-context.xml内以类似的方式检索/访问AWS区域(类似于该环境#{systemProperties['application.environment']})?

例如:

...
<bean class="org.opensaml.util.resource.ClasspathResource">
    <constructor-arg value="saml/metadata/something-#{systemProperties['application.environment']}-????.xml"
</bean>
...
saml
    -metadata
    -something-test-us-west-2.xml
    -something-test-us-east-1.xml
    ...

或通过返回当前区域的类。

public String currentRegion() {
    final Region region = Regions.getCurrentRegion();
    String serverUrl = null;

    if (region.equals(Region.getRegion(Regions.US_WEST_2))) {
        serverUrl = "something...us-west-2.com";
    } else if (region.equals(Region.getRegion(Regions.US_EAST_1))) {
        serverUrl = "something...us-east-1.com";
    }
    return serverUrl;
}   

如何在security-context.xml中获取方法的值?您能告诉我如何将AWS区域动态传递到xml中吗?

0 个答案:

没有答案