Spring security 配置spring security ldap服务器属性以根据部署的环境使用不同的url

Spring security 配置spring security ldap服务器属性以根据部署的环境使用不同的url,spring-security,spring-security-ldap,Spring Security,Spring Security Ldap,我们正在使用SpringSecurity,并且它运行良好。我试图找出一件不明显的事情——如何配置ldap服务器属性以根据部署的环境使用不同的url 这就是我的工作原理: <ldap-server url="ldap://testserver:port/o=blah" manager-dn="cn=bind,ou=Users,o=blah" manager-password="password"/> <authentication-manager id="authenticat

我们正在使用SpringSecurity,并且它运行良好。我试图找出一件不明显的事情——如何配置ldap服务器属性以根据部署的环境使用不同的url

这就是我的工作原理:

<ldap-server url="ldap://testserver:port/o=blah" manager-dn="cn=bind,ou=Users,o=blah" manager-password="password"/>

<authentication-manager id="authenticationManager" alias="authenticationManager">
<ldap-authentication-provider            
    user-search-filter="(cn={0})"           
    user-search-base="ou=Users"           
    group-search-filter="(uniqueMember={0})"           
    group-search-base="ou=groups"           
    group-role-attribute="cn"           
    role-prefix="none">         
</ldap-authentication-provider>

现在,我如何根据部署的环境将其配置为使用不同的url

提前感谢,,
Sharath

我已经用Spring配置文件完成了这项工作:

在spring.*.xml配置文件中,在文件末尾使用以下命令:

<beans profile="production">
...
</beans>
<beans profile="local">
...
</beans>

...
...
作为VM参数,必须提供所使用的配置文件: -Dspring.profiles.active=生产


关于

您可以将url用作变量,并在属性文件中进行设置。 更改属性文件应该更容易。我知道你可以用Maven实现这一点——使用jar或war插件取决于打包,包括一次执行生成两个(或更多)包——但我想你也可以用Ant或其他管理器实现


当然,您可以使用该解决方案来更改整个xml,但使用属性文件更容易做到这一点,因为这样,在更改配置时,标记将不会碍事,只会影响变量和值。

使用PropertyPlaceHolderConfigure。请参阅@RobWinch,谢谢您的回复。这需要应用程序外部的属性文件,我们需要的是将配置封装在应用程序本身中。有什么想法吗?其他选择?我认为你需要扩展你正在寻找的。封装在应用程序本身中是什么意思。如果愿意,您可以将属性文件放在应用程序中,但是您不能很容易地更改它。您也可以使用系统参数,而不是使用属性文件。我所做的另一件事是使用PropertyPlaceHolderConfigure和JNDI查找作为值。@Rob,我喜欢JNDI配置器的想法,并尝试实现一个。问题是如何替换“ldap服务器url=”中url的值ldap://testserver:port/o=blah“‘因为那不是财产?我基本上需要url在部署环境的基础上是动态的。我觉得有或者应该有一些简单的东西我没有,因为我觉得这应该是一个相当常见的用例。@我在另一篇文章中找到了您的回复,并使用该信息做了以下工作:在websphere中添加了一个带有varName的条目,并在applicationContext security xml中包含以下内容:
谢谢你的帮助!