[英]Unable to locate ldaptive schema in CAS 4.2.x
I am new to the CAS setup, started using CAS 4.2.x version. 我不熟悉CAS设置,开始使用CAS 4.2.x版本。 With help of the below , doing the setup.
在以下帮助下,进行设置。 [ https://apereo.github.io/cas/4.2.x/installation/LDAP-Authentication.html][1]
[ https://apereo.github.io/cas/4.2.x/installation/LDAP-Authentication.html][1]
After adding bean reference " http://www.ldaptive.org/schema/spring-ext " in the deployerConfigcontext.xml, getting the error 在deployerConfigcontext.xml中添加Bean参考“ http://www.ldaptive.org/schema/spring-ext ”后,出现错误
Configuration problem: Unable to locate Spring Namespace handler for xml schema namespace [http://www.ldaptive.org/schema/spring-ext]
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:webflow="http://www.springframework.org/schema/webflow-config"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:ldaptive="http://www.ldaptive.org/schema/spring-ext"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd
http://www.ldaptive.org/schema/spring-ext http://www.ldaptive.org/schema/spring-ext.xsd">
I am using CAS 3.5.2 and was facing the same issue ..... the below workaround worked for me. 我正在使用CAS 3.5.2,并且遇到相同的问题..以下解决方法为我工作。 You can give it a shot and see if it works for you as well.
您可以试一试,看看它是否也适用。
Add the following dependency in your pom.xml file 在pom.xml文件中添加以下依赖项
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-ldap</artifactId>
<version>${cas.version}</version>
</dependency>
then remove the below lines from your deployerConfigcontext.xml 然后从您的deployerConfigcontext.xml中删除以下几行
xmlns:ldaptive="http://www.ldaptive.org/schema/spring-ext"
http://www.ldaptive.org/schema/spring-ext http://www.ldaptive.org/schema/spring-ext.xsd
In your deployerConfigcontext.xml remove the ldaptive declaration and replace it with the below format. 在您的deployerConfigcontext.xml中,删除ldaptive声明,并将其替换为以下格式。
<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
<!-- DO NOT enable JNDI pooling for context sources that perform LDAP bind operations. -->
<property name="pooled" value="false"/>
<!--
Although multiple URLs may defined, it's strongly recommended to avoid this configuration
since the implementation attempts hosts in sequence and requires a connection timeout
prior to attempting the next host, which incurs unacceptable latency on node failure.
A proper HA setup for LDAP directories should use a single virtual host that maps to multiple
real hosts using a hardware load balancer.
-->
<property name="url" value="your-ldap-url" />
<!--
Manager credentials are only required if your directory does not support anonymous searches.
Never provide these credentials for FastBindLdapAuthenticationHandler since the user's
credentials are used for the bind operation.
-->
<property name="userDn" value="your-userDn-info"/>
<property name="password" value="password-for-your-userDn"/>
<!-- Place JNDI environment properties here. -->
<property name="baseEnvironmentProperties">
<map>
<!-- Three seconds is an eternity to users. -->
<entry key="com.sun.jndi.ldap.connect.timeout" value="3000" />
<entry key="com.sun.jndi.ldap.read.timeout" value="3000" />
<!-- Explained at http://docs.oracle.com/javase/jndi/tutorial/ldap/security/auth.html -->
<entry key="java.naming.security.authentication" value="simple" />
</map>
</property>
</bean>
Also in your deployerConfigcontext.xml remove your ldapAuthenticationHandler bean and replace it with the following 同样在您的deployerConfigcontext.xml文件中,删除ldapAuthenticationHandler bean,并将其替换为以下内容
<bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"
p:filter="your-ldap-filter"
p:searchBase="your-search-base"
p:contextSource-ref="contextSource"
p:ignorePartialResultException="true" />
Please note that i am using CAS 3.5.2 so you might have to make some more changes ... 请注意,我正在使用CAS 3.5.2,因此您可能必须进行更多更改...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.