Did you ever find a solution for this?
On Friday, December 12, 2014 at 5:06:04 AM UTC-5, Antoine L wrote: > > I installed cas 4 with ldap ( I use AD), it works. Now I want add LPPE, it > works for an account disabled or for invalid logon hours but not all > regardings password. Everytime, I have invalid credentials. I followed the > instruction from > http://jasig.github.io/cas/4.0.0/installation/LDAP-Authentication.html.I > found tutorials for lppe configuration only for cas 3.5 > > > > ========================================== log file > ============================================================= > > 2014-12-12 09:30:40,220 INFO [org.ldaptive.auth.Authenticator] - > <Authentication failed for dn: [email protected]> > 2014-12-12 09:30:40,232 DEBUG [org.ldaptive.auth.Authenticator] - > <authenticate > response=[org.ldaptive.auth.AuthenticationHandlerResponse@1841077166::connection=[org.ldaptive.DefaultConnectionFactory$DefaultConnection@325586398::config=[org.ldaptive.ConnectionConfig@1213704814::ldapUrl=ldap://ad.test.local, > > connectTimeout=3000, responseTimeout=-1, > sslConfig=[org.ldaptive.ssl.SslConfig@1937129692::credentialConfig=[org.ldaptive.ssl.X509CredentialConfig@1821596917::trustCertificates=file:/etc/pki/certificate.pem, > > authenticationCertificate=null, authenticationKey=null], > trustManagers=null, enabledCipherSuites=null, enabledProtocols=null, > handshakeCompletedListeners=null], useSSL=false, useStartTLS=false, > connectionInitializer=null], > providerConnectionFactory=[org.ldaptive.provider.jndi.JndiConnectionFactory@1650575248::connectionCount=1, > > environment={java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, > com.sun.jndi.ldap.connect.timeout=3000, java.naming.ldap.version=3}, > providerConfig=[org.ldaptive.provider.jndi.JndiProviderConfig@24441190::operationExceptionResultCodes=[PROTOCOL_ERROR, > > SERVER_DOWN], properties={}, connectionStrategy=DEFAULT, environment=null, > tracePackets=null, removeDnUrls=true, > searchIgnoreResultCodes=[TIME_LIMIT_EXCEEDED, SIZE_LIMIT_EXCEEDED, > PARTIAL_RESULTS], sslSocketFactory=null, hostnameVerifier=null, > controlProcessor=org.ldaptive.provider.ControlProcessor@24946049]], > providerConnection=org.ldaptive.provider.jndi.JndiConnection@93d6b62], > result=false, resultCode=INVALID_CREDENTIALS, > message=javax.naming.AuthenticationException: [LDAP: error code 49 - > 80090308: LdapErr: DSID-0C0903C5, comment: AcceptSecurityContext error, > data 701, v2580], controls=null] for [email protected] with > request=[org.ldaptive.auth.AuthenticationRequest@1733595237::user=bob, > retAttrs=[sAMAccountName, displayName, sAMAccountName, > eduPersonAffiliation, groupMembership]]> > 2014-12-12 09:30:40,233 INFO > [org.jasig.cas.authentication.PolicyBasedAuthenticationManager] - > <LdapAuthenticationHandler failed authenticating bob+password> > 2014-12-12 09:30:40,242 INFO > [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit > trail record BEGIN > > > ================================== deployerConfigContext > ============================================ > > <?xml version="1.0" encoding="UTF-8"?> > <!-- > > Licensed to Jasig under one or more contributor license > agreements. See the NOTICE file distributed with this work > for additional information regarding copyright ownership. > Jasig licenses this file to you under the Apache License, > Version 2.0 (the "License"); you may not use this file > except in compliance with the License. You may obtain a > copy of the License at the following location: > > http://www.apache.org/licenses/LICENSE-2.0 > > Unless required by applicable law or agreed to in writing, > software distributed under the License is distributed on an > "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > KIND, either express or implied. See the License for the > specific language governing permissions and limitations > under the License. > > --> > <!-- > | deployerConfigContext.xml centralizes into one file some of the > declarative configuration that > | all CAS deployers will need to modify. > | > | This file declares some of the Spring-managed JavaBeans that make up a > CAS deployment. > | The beans declared in this file are instantiated at context > initialization time by the Spring > | ContextLoaderListener declared in web.xml. It finds this file because > this > | file is among those declared in the context parameter > "contextConfigLocation". > | > | By far the most common change you will need to make in this file is to > change the last bean > | declaration to replace the default authentication handler with > | one implementing your approach for authenticating usernames and > passwords. > +--> > > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:p="http://www.springframework.org/schema/p" > xmlns:c="http://www.springframework.org/schema/c" > xmlns:tx="http://www.springframework.org/schema/tx" > xmlns:util="http://www.springframework.org/schema/util" > xmlns:sec="http://www.springframework.org/schema/security" > xmlns:context="http://www.springframework.org/schema/context" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-3.2.xsd > http://www.springframework.org/schema/tx > http://www.springframework.org/schema/tx/spring-tx-3.2.xsd > http://www.springframework.org/schema/security > http://www.springframework.org/schema/security/spring-security-3.2.xsd > http://www.springframework.org/schema/context > http://www.springframework.org/schema/context/spring-context-3.0.xsd > http://www.springframework.org/schema/util > http://www.springframework.org/schema/util/spring-util.xsd"> > <context:component-scan base-package="org.jasig.cas" /> > <context:component-scan base-package="org.jasig.cas.authentication" > /> > > > <!-- > | The authentication manager defines security policy for > authentication by specifying at a minimum > | the authentication handlers that will be used to authenticate > credential. While the AuthenticationManager > | interface supports plugging in another implementation, the > default PolicyBasedAuthenticationManager should > | be sufficient in most cases. > +--> > <bean id="authenticationManager" > class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager"> > <constructor-arg> > <map> > <!-- > | IMPORTANT > | Every handler requires a unique name. > | If more than one instance of the same handler class > is configured, you must explicitly > | set its name to something other than its default name > (typically the simple class name). > --> > <entry key-ref="proxyAuthenticationHandler" > value-ref="proxyPrincipalResolver" /> > <entry key-ref="ldapAuthenticationHandler" > value-ref="primaryPrincipalResolver" /> > </map> > </constructor-arg> > > > <!-- Uncomment the metadata populator to allow clearpass to > capture and cache the password > This switch effectively will turn on clearpass.--> > <property name="authenticationMetaDataPopulators"> > <util:list> > <bean > class="org.jasig.cas.extension.clearpass.CacheCredentialsMetaDataPopulator" > c:credentialCache-ref="encryptedMap" /> > </util:list> > </property> > > > <!-- > | Defines the security policy around authentication. Some > alternative policies that ship with CAS: > | > | * NotPreventedAuthenticationPolicy - all credential must > either pass or fail authentication > | * AllAuthenticationPolicy - all presented credential must be > authenticated successfully > | * RequiredHandlerAuthenticationPolicy - specifies a handler > that must authenticate its credential to pass > --> > <property name="authenticationPolicy"> > <bean > class="org.jasig.cas.authentication.AnyAuthenticationPolicy" /> > </property> > </bean> > > <!-- Required for proxy ticket mechanism. --> > <bean id="proxyAuthenticationHandler" > > class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" > p:httpClient-ref="httpClient" /> > > <!-- > | Change principalIdAttribute to use another directory attribute, > | e.g. userPrincipalName, for the NetID > --> > <bean id="ldapAuthenticationHandler" > class="org.jasig.cas.authentication.LdapAuthenticationHandler" > p:principalIdAttribute="sAMAccountName" > c:authenticator-ref="authenticator" > p:passwordPolicyConfiguration-ref="passwordPolicy" > > <property name="principalAttributeMap"> > <map> > <!-- > | This map provides a simple attribute resolution mechanism. > | Keys are LDAP attribute names, values are CAS attribute > names. > | Use this facility instead of a PrincipalResolver if LDAP > is > | the only attribute source. > --> > <entry key="displayName" value="displayName" /> > <entry key="sAMAccountName" value="sAMAccountName" /> > <entry key="eduPersonAffiliation" value="eduPersonAffiliation" > /> > <entry key="groupMembership" value="groupMembership" /> > </map> > </property> > </bean> > > <bean id="authenticator" class="org.ldaptive.auth.Authenticator" > c:resolver-ref="dnResolver" > c:handler-ref="authHandler" > p:entryResolver-ref="entryResolver" > > <property name="authenticationResponseHandlers"> > <util:list> > <bean > class="org.ldaptive.auth.ext.ActiveDirectoryAuthenticationResponseHandler" > /> > </util:list> > </property> > </bean> > > > <!-- Active Directory UPN format. --> > <bean id="dnResolver" > class="org.ldaptive.auth.FormatDnResolver" > c:format="%s@${ldap.domain}" /> > > <bean id="authHandler" > class="org.ldaptive.auth.PooledBindAuthenticationHandler" > p:connectionFactory-ref="pooledLdapConnectionFactory" /> > > <bean id="pooledLdapConnectionFactory" > class="org.ldaptive.pool.PooledConnectionFactory" > p:connectionPool-ref="connectionPool" /> > > <bean id="connectionPool" > class="org.ldaptive.pool.BlockingConnectionPool" > init-method="initialize" > p:poolConfig-ref="ldapPoolConfig" > p:blockWaitTime="${ldap.pool.blockWaitTime}" > p:validator-ref="searchValidator" > p:pruneStrategy-ref="pruneStrategy" > p:connectionFactory-ref="connectionFactory" /> > > <bean id="ldapPoolConfig" class="org.ldaptive.pool.PoolConfig" > p:minPoolSize="${ldap.pool.minSize}" > p:maxPoolSize="${ldap.pool.maxSize}" > p:validateOnCheckOut="${ldap.pool.validateOnCheckout}" > p:validatePeriodically="${ldap.pool.validatePeriodically}" > p:validatePeriod="${ldap.pool.validatePeriod}" /> > > <bean id="connectionFactory" > class="org.ldaptive.DefaultConnectionFactory" > p:connectionConfig-ref="connectionConfig" /> > > <bean id="connectionConfig" class="org.ldaptive.ConnectionConfig" > p:ldapUrl="${ldap.url}" > p:connectTimeout="${ldap.connectTimeout}" > p:useStartTLS="${ldap.useStartTLS}" > p:sslConfig-ref="sslConfig"/> > > <bean id="sslConfig" class="org.ldaptive.ssl.SslConfig"> > <property name="credentialConfig"> > <bean class="org.ldaptive.ssl.X509CredentialConfig" > p:trustCertificates="${ldap.trustedCert}" /> > </property> > </bean> > > <bean id="pruneStrategy" class="org.ldaptive.pool.IdlePruneStrategy" > p:prunePeriod="${ldap.pool.prunePeriod}" > p:idleTime="${ldap.pool.idleTime}" /> > > <bean id="searchValidator" class="org.ldaptive.pool.SearchValidator" /> > > <bean id="entryResolver" > class="org.jasig.cas.authentication.support.UpnSearchEntryResolver" > p:baseDn="${ldap.authn.baseDn}" /> > > <!-- > | TODO: Replace this component with one suitable for your > enviroment. > | > | This component provides authentication for the kind of credential > used in your environment. In most cases > | credential is a username/password pair that lives in a system of > record like an LDAP directory. > | The most common authentication handler beans: > | > | * org.jasig.cas.authentication.LdapAuthenticationHandler > | * org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler > | * > org.jasig.cas.adaptors.x509.authentication.handler.support.X509CredentialsAuthenticationHandler > | * > org.jasig.cas.support.spnego.authentication.handler.support.JCIFSSpnegoAuthenticationHandler > --> > <!-- <bean id="primaryAuthenticationHandler" > > class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"> > <property name="users"> > <map> > <entry key="casuser" value="Mellon"/> > </map> > </property> > </bean>--> > > <!-- Required for proxy ticket mechanism --> > <bean id="proxyPrincipalResolver" > class="org.jasig.cas.authentication.principal.BasicPrincipalResolver" /> > > <!-- > | Resolves a principal from a credential using an attribute > repository that is configured to resolve > | against a deployer-specific store (e.g. LDAP). > --> > <bean id="primaryPrincipalResolver" > class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver" > > > > <property name="attributeRepository" ref="attributeRepository" /> > </bean> > > <!-- > Bean that defines the attributes that a service may return. This > example uses the Stub/Mock version. A real implementation > may go against a database or LDAP server. The id should remain > "attributeRepository" though. > +--> > <bean id="attributeRepository" > class="org.jasig.services.persondir.support.StubPersonAttributeDao" > p:backingMap-ref="attrRepoBackingMap" /> > > <util:map id="attrRepoBackingMap"> > <entry key="displayName" value="displayName" /> > <entry key="sAMAccountName" value="sAMAccountName" /> > <entry key="eduPersonAffiliation" value="eduPersonAffiliation" /> > <entry key="groupMembership" value="groupMembership" /> > </util:map> > > <!-- > Sample, in-memory data store for the ServiceRegistry. A real > implementation > would probably want to replace this with the JPA-backed > ServiceRegistry DAO > The name of this bean should remain "serviceRegistryDao". > +--> > <bean id="serviceRegistryDao" > class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl" > p:registeredServices-ref="registeredServicesList" /> > > <util:list id="registeredServicesList"> > > <bean class="org.jasig.cas.services.RegexRegisteredService" > p:id="0" p:name="HTTP and IMAP" p:description="Allows > HTTP(S) and IMAP(S) protocols" > p:serviceId="^(https?|imaps?)://.*" > p:evaluationOrder="10000001" > p:allowedToProxy="true" /> > > </util:list> > > <bean id="auditTrailManager" > class="com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager" /> > > <bean id="healthCheckMonitor" > class="org.jasig.cas.monitor.HealthCheckMonitor" > p:monitors-ref="monitorsList" /> > > <util:list id="monitorsList"> > <bean class="org.jasig.cas.monitor.MemoryMonitor" > p:freeMemoryWarnThreshold="10" /> > <!-- > NOTE > The following ticket registries support SessionMonitor: > * DefaultTicketRegistry > * JpaTicketRegistry > Remove this monitor if you use an unsupported registry. > --> > <bean class="org.jasig.cas.monitor.SessionMonitor" > p:ticketRegistry-ref="ticketRegistry" > p:serviceTicketCountWarnThreshold="5000" > p:sessionCountWarnThreshold="100000" /> > </util:list> > > > </beans> > > > ================================== lppe-configuration > ================================================ > > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:p="http://www.springframework.org/schema/p" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd"> > > <!-- > | Sample LDAP password policy configuration. > | There are notable configuration requirements for LDAP components > required for password policy > | depending on the directory (Active Directory, OpenLDAP, etc). > | See CAS documentation for more information. > --> > <bean id="passwordPolicy" > class="org.jasig.cas.authentication.support.LdapPasswordPolicyConfiguration" > > p:alwaysDisplayPasswordExpirationWarning="${password.policy.warnAll}" > p:passwordWarningNumberOfDays="${password.policy.warningDays}" > p:passwordPolicyUrl="${password.policy.url}" > p:accountStateHandler-ref="accountStateHandler" /> > > <!-- This component is suitable for most cases but can be replaced with > a custom component for special cases. --> > <bean id="accountStateHandler" > class="org.jasig.cas.authentication.support.DefaultAccountStateHandler" /> > > </beans> > > > > > Thanks for any time spent for help me > > Antoine > > -- You are currently subscribed to [email protected] as: [email protected] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user
