CAS和LDAP自定义集成

问题描述 投票:0回答:1

我将描述一个奇怪的情况。我们的产品具有正确运行的CAS和LDAP集成。问题是,并非所有客户都使用LDAP,这很好,除非集成仍然存在,所以CAS积极尝试连接到ldap服务器(当然失败了)。它尝试每五分钟进行一次连接,这将创建一个非常肿的Tomcat日志。我的目标是防止它在不破坏集成的情况下尝试连接。我希望有人知道一种防止或管理CAS何时/如何尝试连接到定义的LDAP服务器的方法。

我已经尝试删除CAS属性文件以及deployerConfigContext.xml的关键组件,但是该集成具有过多的依赖关系,但是我没有成功。

以下是cas.properties文件中使用的一些属性。将ldap.auth.enabled设置为false可使我们的集成在对用户进行身份验证时不使用LDAP,这不会阻止CAS尝试连接到LDAP服务器:

ldap.auth.enabled=false
ldap.url=ldap://xyz.customurl.com
ldap.useStartTLS=false
ldap.rootDn=DC=xyz,DC=xyz,DC=com
ldap.baseDn=DC=xyz,DC=xyz,DC=com
ldap.connectTimeout=3000
ldap.managerDn=CN=xyz,CN=Users,DC=xyz,DC=xyz,DC=com
ldap.managerPassword=xyz
ldap.authn.searchFilter=(&(sAMAccountName={user})(objectClass=user))
ldap.domain=123.456.7.890
ldap.pool.minSize=1
ldap.pool.maxSize=10
ldap.pool.validateOnCheckout=false
ldap.pool.validatePeriodically=true
ldap.pool.blockWaitTime=3000
ldap.pool.validatePeriod=300
ldap.pool.prunePeriod=300
ldap.pool.idleTime=600
ldap.usePpolicy=false
ldap.allowMultipleDns=true

这是deployerConfigContext.xml中的相关部分。我尝试注释整个ldap部分,但收到了导致TomCat崩溃的各种其他错误:

<bean id="ldapAuthenticationHandler"
      class="org.jasig.cas.authentication.LdapAuthenticationHandler"
      p:principalIdAttribute="sAMAccountName"
      c:authenticator-ref="authenticator" lazy-init="true"/>

<ldaptive:ad-authenticator id="authenticator"
                           ldapUrl="${ldap.url}"
                           userFilter="${ldap.authn.searchFilter}"
                           bindDn="${ldap.managerDn}"
                           bindCredential="${ldap.managerPassword}"
                           allowMultipleDns="${ldap.allowMultipleDns:false}"
                           connectTimeout="${ldap.connectTimeout}"
                           validateOnCheckOut="${ldap.pool.validateOnCheckout}"
                           failFastInitialize="false"
                           blockWaitTime="${ldap.pool.blockWaitTime}"
                           idleTime="${ldap.pool.idleTime}"
                           baseDn="${ldap.baseDn}"
                           maxPoolSize="${ldap.pool.maxSize}"
                           minPoolSize="${ldap.pool.minSize}"
                           validatePeriodically="${ldap.pool.validatePeriodically}"
                           validatePeriod="${ldap.pool.validatePeriod}"
                           prunePeriod="${ldap.pool.prunePeriod}"
                           useSSL="${ldap.use.ssl:false}"
                           subtreeSearch="${ldap.subtree.search:true}"
                           useStartTLS="${ldap.useStartTLS}"/>

CAS到LDAP服务器连接的堆栈跟踪很大。这是一个小片段。如果有用的话,我可以附上整个内容。

org.ldaptive.provider.ConnectionException:javax.naming.CommunicationException:ldap.url.com:389 [根本异常是java.net.UnknownHostException:ldap.url.com

ldap cas
1个回答
0
投票

我在JDBC和LDAP / AD处理程序之间切换。确保在以下位置注释掉您的ldap处理程序:

deployerConfigContext.xmlxpath:

/ beans

/ bean [class = org.jasig.cas.authentication.AuthenticationManagerImpl]

/ property [name = authenticationHandlers]] >>

/列表/

© www.soinside.com 2019 - 2024. All rights reserved.