Spring свойство-заполнитель настраивает positiveInteger - PullRequest
2 голосов
/ 26 апреля 2011

Я хотел бы сопоставить настройки порта ldapserver со свойством в моем файле свойств. Но когда я использую ${ldapserverport}, тогда я получаю ошибку:

"Значение '$ {ldapserverport}' из атрибут «порт» на элементе 'ldap-server' недопустим с уважение к своему типу, 'Положительное_целое'. "

Есть ли способ разыграть это свойство? Другие свойства работают идеально.

мой код:

<ldap-server id="ldapServer" url="${ldapserverurl}" 
        port="${ldapserverport}"
        manager-dn="${ldapserveruser}" 
        root="${ldapserverroot}"
        manager-password="${ldapserverpassword}"/>

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Это недостаток подхода «настраиваемого пространства имен», используемого некоторыми стилями конфигурации Spring. Хотя он позволяет выражать конфигурации очень кратко, он также очень специфичен и не позволяет автоматически использовать какую-либо общую логику подстановки, используемую определениями <bean> -тиля, включая заполнители свойств.

Если автор схемы установил жесткое требование для заданного атрибута быть целым числом, то обойти его невозможно - автору схемы и ее анализирующему коду придется добавить явную поддержку для заполнителей. В этом случае они не имеют.

Так что, если вы хотите использовать заполнители, вам придется «взорвать» определение ярлыка <ldap-server> в графе базовых определений <bean>. Это не всегда легко, так как документы должны объяснить, какие бины на самом деле определены как <ldap-server>.

0 голосов
/ 23 января 2014
    <bean id="ldap-server" class="org.springframework.security.ldap.server.ApacheDSContainer">
      <constructor-arg index="0" value="dc=test,dc=com"/>
      <constructor-arg index="1" value="classpath:ldap_init.ldif"/>
      <property name="port" value="${ldapserverport}"/>
    </bean>

Может потребоваться следующая зависимость

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core</artifactId>
      <version>1.5.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-entry</artifactId>
      <version>1.5.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-ldap</artifactId>
      <version>1.5.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-shared</artifactId>
      <version>1.5.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-server-jndi</artifactId>
      <version>1.5.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.shared</groupId>
      <artifactId>shared-ldap</artifactId>
      <version>0.9.15</version>
    </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...