I am upgrading our CAS infrastructure to version 3.6.0 and to include support 
for Duo authentication.  It authenticates users and records their tickets in 
its SQL Server database fine.  I may view its service registry via its Services 
Management interface, but get a "CAS is Unavailable" error when trying to edit 
the services.

Attached are copies of its deployerConfigContext.xml file and the log file 
containing the error that is produced when trying to edit the services.

Please help me resolve this problem.  Thank you.

Alex
-- 
You are currently subscribed to cas-user@lists.jasig.org as: 
arch...@mail-archive.com
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user
<?xml version="1.0" encoding="UTF-8"?>
<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:sec="http://www.springframework.org/schema/security";
       xmlns:tx="http://www.springframework.org/schema/tx";
       xmlns:aop="http://www.springframework.org/schema/aop";
       xmlns:cas="http://unicon.net/schema/cas";
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                           http://www.springframework.org/schema/security
                           http://www.springframework.org/schema/security/spring-security-3.1.xsd
                           http://www.springframework.org/schema/tx
                           http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
                           http://www.springframework.org/schema/aop
                           http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
                           http://unicon.net/schema/cas
                           http://unicon.net/schema/cas/cas-addons.xsd";>

    <bean id="authenticationManager" class="org.jasig.cas.authentication.AuthenticationManagerImpl">
        <property name="credentialsToPrincipalResolvers">
            <list>
                <bean class="org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver">
                    <property name="credentialsToPrincipalResolver">
                        <bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" />
                    </property>
                    <property name="filter" value="${ldap.filter}" />
                    <property name="principalAttributeName" value="${ldap.login.atttibute}" />
                    <property name="searchBase" value="${ldap.searchbase}" />
                    <property name="contextSource" ref="contextSource" />
                    <property name="attributeRepository">
                        <ref bean="attributeRepository" />
                    </property>
                </bean>
                <bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" />
                <bean class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver"/>
            </list>
        </property>
        <property name="authenticationHandlers">
            <list>
                <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
                      p:httpClient-ref="httpClient"/>
                <!--  bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"/ -->
                <bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler">
                  <property name="filter" value="${ldap.filter}" />
                  <property name="searchBase" value="${ldap.searchbase}" />
                  <property name="contextSource" ref="contextSource" />
                  <property name="searchContextSource" ref="pooledContextSource" />
                  <property name="ignorePartialResultException" value="true" />
                </bean>
            </list>
        </property>
        <property name="authenticationMetaDataPopulators">
          <list>
            <bean class="org.jasig.cas.authentication.SamlAuthenticationMetaDataPopulator" />
          </list>
        </property>
    </bean>

    <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
      <property name="anonymousReadOnly" value="false" />
      <property name="password" value="${ldap.passwd}" />
      <property name="pooled" value="false" />
      <property name="urls">
        <list>
          <value>${ldap.url1}</value>
          <value>${ldap.url2}</value>
          <value>${ldap.url3}</value>
          <value>${ldap.url4}</value>
        </list>
      </property>
      <property name="userDn" value="${ldap.binddn}" />
      <property name="baseEnvironmentProperties">
        <map>
          <entry key="com.sun.jndi.ldap.connect.timeout" value="${ldap.connectTimeout}" />
          <entry key="com.sun.jndi.ldap.read.timeout" value="${ldap.readTimeout}" />
          <entry key="java.naming.security.authentication" value="simple" />
        </map>
      </property>
    </bean>

    <bean id="pooledContextSource"
      class="org.springframework.ldap.pool.factory.PoolingContextSource"
      p:minIdle="${ldap.pool.minIdle}"
      p:maxIdle="${ldap.pool.maxIdle}"
      p:maxActive="${ldap.pool.maxSize}"
      p:maxWait="${ldap.pool.maxWait}"
      p:timeBetweenEvictionRunsMillis="${ldap.pool.evictionPeriod}"
      p:minEvictableIdleTimeMillis="${ldap.pool.idleTime}"
      p:testOnBorrow="${ldap.pool.testOnBorrow}"
      p:testWhileIdle="${ldap.pool.testWhileIdle}"
      p:dirContextValidator-ref="dirContextValidator"
      p:contextSource-ref="contextSource" />
 
    <bean id="dirContextValidator"
      class="org.springframework.ldap.pool.validation.DefaultDirContextValidator"
      p:base=""
      p:filter="objectclass=*">
      <property name="searchControls">
        <bean class="javax.naming.directory.SearchControls"
          p:timeLimit="${ldap.searchTimeout}"
          p:countLimit="1"
          p:searchScope="0"
          p:returningAttributes="" />
      </property>
    </bean>

    <bean id="attributeRepository" class="org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao">
      <property name="contextSource" ref="contextSource" />
      <property name="baseDN" value="${ldap.searchbase}" />
      <property name="requireAllQueryAttributes" value="true" />
      <!--
      Attribute mapping between principal (key) and LDAP (value) names
      used to perform the LDAP search.  By default, multiple search criteria
      are ANDed together.  Set the queryType property to change to OR.
      -->
      <property name="queryAttributeMapping">
        <map>
          <entry key="username" value="${ldap.login.atttibute}" />
        </map>
      </property>
      <property name="resultAttributeMapping">
        <map>
          <!-- Mapping beetween LDAP entry attributes (key) and Principal's (value) -->
          <entry key="cn" value="cn"/>
          <entry key="displayName" value="displayName"/>
          <entry key="givenName" value="givenName"/>
          <entry key="mail" value="mail"/>
          <entry key="ou" value="ou"/>
          <entry key="sn" value="sn"/>
          <entry key="uid" value="uid"/>
        </map>
      </property>
    </bean>

    <!-- cas:json-attribute-repository/ -->

    <!-- cas:json-services-registry read-write="true"/ -->

    <cas:inspektr-log-files-audit-manager/>

    <cas:default-health-check-monitor/>

    <sec:user-service id="userDetailsService">
        <sec:user name="casuser" authorities="none"/>
        <sec:user name="casadmin" authorities="ROLE_ADMIN"/>
    </sec:user-service>

    <!-- ServiceRegistry configuration
         The name of this bean must remain "serviceRegistryDao" -->
   <bean id="serviceRegistryDao" class="org.jasig.cas.services.JpaServiceRegistryDaoImpl"
         p:entityManagerFactory-ref="entityManagerFactory" />

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="generateDdl" value="true"/>
                <property name="showSql" value="true" />
            </bean>
        </property>
        <property name="jpaProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
          p:driverClassName="net.sourceforge.jtds.jdbc.Driver"
          p:url="${service.registry.url}"
          p:username="${service.registry.username}"
          p:password="${service.registry.password}"/>

</beans>

Attachment: localhost.log
Description: Binary data

Reply via email to