Created
September 21, 2015 16:18
-
-
Save dasibre/2ff69f11cbb35f72e08c to your computer and use it in GitHub Desktop.
CAS Configuration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager"> | |
| <constructor-arg> | |
| <map> | |
| <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" /> | |
| <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" /> | |
| <entry key-ref="ldapAuthenticationHandler" value-ref="usernamePasswordCredentialsResolver" /> | |
| </map> | |
| </constructor-arg> | |
| <!-- Uncomment the metadata populator to capture the password. | |
| <property name="authenticationMetaDataPopulators"> | |
| <util:list> | |
| <bean class="org.jasig.cas.authentication.CacheCredentialsMetaDataPopulator"/> | |
| </util:list> | |
| </property> | |
| --> | |
| <property name="authenticationPolicy"> | |
| <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" /> | |
| </property> | |
| </bean> | |
| <bean id="primaryAuthenticationHandler" | |
| class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"> | |
| <property name="users"> | |
| <map> | |
| <entry key="casuser" value="Mellon"/> | |
| </map> | |
| </property> | |
| </bean> | |
| <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" | |
| p:principalFactory-ref="principalFactory" | |
| p:attributeRepository-ref="attributeRepository" /> | |
| <bean id="ldapAuthenticationHandler" | |
| class="org.jasig.cas.authentication.LdapAuthenticationHandler" | |
| p:principalIdAttribute="sAMAccountName" | |
| c:authenticator-ref="authenticator"> | |
| <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="mail" value="mail" /> | |
| <entry key="memberOf" value="memberOf" /> | |
| </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"> | |
| <list> | |
| <bean class="org.ldaptive.auth.ext.ActiveDirectoryAuthenticationResponseHandler" /> | |
| </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" /> | |
| <!-- If you wish to search by user, rather than by dn, change {dn} to {user} --> | |
| <bean id="entryResolver" | |
| class="org.ldaptive.auth.SearchEntryResolver" | |
| p:baseDn="${ldap.authn.baseDn}" | |
| p:userFilter="userPrincipalName={dn}" | |
| p:subtreeSearch="true" /> | |
| !-- | |
| 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="uid" value="uid" /> | |
| <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" /> | |
| <!-- | |
| Use the following definition instead of the above to further restrict access | |
| to services within your domain (including sub domains). | |
| Note that example.com must be replaced with the domain you wish to permit. | |
| This example also demonstrates the configuration of an attribute filter | |
| that only allows for attributes whose length is 3. | |
| --> | |
| <!-- | |
| <bean class="org.jasig.cas.services.RegexRegisteredService"> | |
| <property name="id" value="1" /> | |
| <property name="name" value="HTTP and IMAP on example.com" /> | |
| <property name="description" value="Allows HTTP(S) and IMAP(S) protocols on example.com" /> | |
| <property name="serviceId" value="^(https?|imaps?)://([A-Za-z0-9_-]+\.)*example\.com/.*" /> | |
| <property name="evaluationOrder" value="0" /> | |
| <property name="attributeFilter"> | |
| <bean class="org.jasig.cas.services.support.RegisteredServiceRegexAttributeFilter" c:regex="^\w{3}$" /> | |
| </property> | |
| </bean> | |
| --> | |
| </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> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment