Can you share some specific details on what's not working for you? --Daniel Fisher
On Mon, Feb 23, 2015 at 2:49 PM, Jim Price <[email protected]> wrote: > 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 > > -- 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
