微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使PropertyPlaceholderConfigurer起作用

如何解决无法使PropertyPlaceholderConfigurer起作用

| 我正在使用LDAP验证Web应用程序中的用户。与LDAP相关的Bean在名为
spring-servlet-security-ldap.xml
(现在称为
ldap.xml
)的单独文件中进行配置。我的主要Web应用程序上下文文件\'spring-servlet.xml \'导入了
spring-servlet-security.xml
,它再次导入了ldap文件。如果我不使用属性文件,则此设置有效。 我之所以包含了层次结构详细信息,是因为类似的问题站点“ 3”被覆盖了。 ldap设置的属性文件位于
WEB-INF
目录中。 我在
ldap.xml
中定义了
PropertyPlaceholderConfigurer
如下
<bean id=\"placeHolderConfigurer\" class=\"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer\">
    <property name=\"location\"><value>WEB-INF/ldap.properties</value></property>
</bean>
我正在引用同一文件中的属性
<bean id=\"contextSource\" class=\"org.springframework.security.ldap.DefaultSpringSecurityContextSource\" depends-on=\"placeHolderConfigurer\">
    <constructor-arg value=\"ldap://xx.xx.xx.xx:389/dc=example,dc=com\" />
    <property name=\"userDn\"><value>{ldap.userDN}</value></property>
    <property name=\"password\" value=\"secret\" />
</bean>
日志表明该属性正在加载。
INFO Thread-0 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer - Loading properties file from ServletContext resource [/WEB-INF/ldap.properties]
但是没有为该值引用属性文件,而是使用了字面配置的值。我已经从数据包跟踪中验证了绑定请求用于DN“ 10”。     

解决方法

我认为您只需要一个11英镑的占位符符号即可:12英镑。 这是默认值为
PropertyPlaceholderConfigurer
的占位符格式。这是通过
placeholderPrefix
和ѭ15controlled属性控制的;默认情况下分别为
${
}
。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。