我要更改另一个程序的ldap配置(称为openkm),其中包括编辑一个spring xml文件,如下所示:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:b="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">
<security:ldap-server id="ldapServer"
url="ldap://192.168.0.6:389/DC=ldap,dc=weyler,dc=local"
manager-dn="CN=Administrator,cn=users,dc=weyler,dc=local"
manager-password="password"/>
<security:authentication-manager alias="authenticationManager">
<security:ldap-authentication-provider
server-ref="ldapServer"
user-search-base="cn=Users"
user-search-filter="(sAMAccountName={0})"
group-search-base="cn=Users"
group-search-filter="(member={0})"
group-role-attribute="cn"
role-prefix="none">
</security:ldap-authentication-provider>
</security:authentication-manager>
</beans:beans>
配置只关注替换现有值(例如更改ip,port或baseDn)。 使用正则表达式替换全部是不可靠的,并且Dom xml解析器对于这个大的xml文件来说是一团糟。怎么可能这样做?
答案 0 :(得分:0)
使用Spring PropertyPlaceHolderConfigurer
将这些配置外部化为属性文件,并从XML访问它们。示例here。
然后,您可以使用apache公共属性或任何其他属性编写器以程序方式更新属性文件。
这样,它比操作XML更有效,更清晰。