我想将我的ldapserver端口设置映射到我的属性文件中的属性。
但是当我使用${ldapserverport}
而不是我得到错误时:
“'$ {ldapserverport}'的值 元素上的属性'port' 'ldap-server'无效 尊重其类型, 'positiveInteger'。“
无论如何要投这个属性? 其他属性工作正常。
我的代码:
<ldap-server id="ldapServer" url="${ldapserverurl}"
port="${ldapserverport}"
manager-dn="${ldapserveruser}"
root="${ldapserverroot}"
manager-password="${ldapserverpassword}"/>
答案 0 :(得分:3)
这是一些Spring配置样式使用的“自定义命名空间”方法的缺点。虽然它允许非常简洁地表达配置,但它也非常具体,并且不会自动允许<bean>
样式定义使用的任何通用替换逻辑,包括属性占位符。
如果架构作者已经将给定属性的硬连线要求作为整数,那么就没有解决它 - 架构的作者和解析它的代码必须添加明确的支持对于占位符。在这种情况下,他们没有。
因此,如果您想使用占位符,则必须将<ldap-server>
快捷方式定义“爆炸”到基础<bean>
定义的图形中。这并不总是容易的,因为文档必须解释<ldap-server>
实际定义的bean。
答案 1 :(得分:0)
<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>