2017-01-25 4 views
0

Я собираюсь изменить Ldap конфигурации другой программы (ее называют openkm), который включает в себя редактирование пружинный XML-файл, как это:Как сериализации/десериализации весной XML CONFIG

<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

Используйте Spring PropertyPlaceHolderConfigurer для экстернализации этих конфигураций в файле свойств и доступа к ним из вашего XML. Пример here.

И тогда вы можете обновить свой файл свойств программно с помощью общих свойств apache или любого другого владельца свойства.

Таким образом, это будет намного эффективнее и чище, чем манипулировать XML.

+0

его не мой xml, его другой файл конфигурации программы, который я должен настроить программно. хотя ребятам в openkm следует подумать об использовании файла свойств вместо файлов весны xml для настройки их программы! – redbeard1970

+0

В этом случае у вас нет выбора, кроме как использовать синтаксический анализатор XML. Если вы обнаружите, что API-анализатор DOM сложный, JDOM будет хорошим выбором. Однако, если файл очень большой, а эффективность - проблема, вы можете попробовать парсер StAX. –

+0

jaxb был бы вариантом, если бы я знал только об этом Spring xml config classes – redbeard1970

Смежные вопросы