Problems congiguring cas 4.2.3 with LDAP

251 views
Skip to first unread message

Sagar Kapadia

unread,
Jul 20, 2016, 2:33:17 PM7/20/16
to CAS Community

Hi, I am trying to configure cas 4.2.3 with LDAP. I am gettiing the following exceptoin
 Error creating bean with name 'inspektrIpAddressUsernameThrottle': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.jasig.inspektr.audit.AuditTrailManager org.jasig.cas.web.support.InspektrThrottledSubmissionByIpAddressAndUsernameHandlerInterceptorAdapter.auditTrailManager; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.jasig.inspektr.audit.AuditTrailManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=auditTrailManager)}



The documentation says 
File-based Audits
By default, audit messages appear in log files via the Slf4jLoggingAuditTrailManager and are routed to a cas_audit.log file defined in the log4j2.xml configuration as well as the usual cas.log file.

I even  tried to explicitly define a bean with id ='auditTrailManager'  and class="Slf4jLoggingAuditTrailManager"  but this did not work either.


I have resolved a lot of other issues which came up, but seem to be unable to resolve this one.I have been struggling with this integration [cas +ldap] for 2 days now, and for last 4 hours with the above issue. Any help would be appreciated

Regards,
Sagar R. Kapadia



deployerConfigContext.xml

<?xml version="1.0" encoding="UTF-8"?>
       xmlns:ldaptive="http://www.ldaptive.org/schema/spring-ext"
       >


<bean id="ldapAuthenticationHandler"
      class="org.jasig.cas.authentication.LdapAuthenticationHandler"
      p:principalIdAttribute="mail"
      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="member" value="member" />
            <entry key="mail" value="mail" />
            <entry key="displayName" value="displayName" />
        </map>
    </property>
</bean>

<bean id="authenticator" class="org.ldaptive.auth.Authenticator"
      c:resolver-ref="dnResolver"
      c:handler-ref="authHandler" />

<bean id="dnResolver" class="org.ldaptive.auth.PooledSearchDnResolver"
      p:baseDn="ou=people,dc=cloudnine,dc=in"
      p:subtreeSearch="true"
      p:allowMultipleDns="false"
      p:connectionFactory-ref="searchPooledLdapConnectionFactory"
      p:userFilter="true" />

<bean id="searchPooledLdapConnectionFactory"
      class="org.ldaptive.pool.PooledConnectionFactory"
      p:connectionPool-ref="searchConnectionPool" />

<bean id="searchConnectionPool" parent="abstractConnectionPool"
      p:connectionFactory-ref="searchConnectionFactory" />

<bean id="searchConnectionFactory"
      class="org.ldaptive.DefaultConnectionFactory"
      p:connectionConfig-ref="searchConnectionConfig" />

<bean id="searchConnectionConfig" parent="abstractConnectionConfig"
      p:connectionInitializer-ref="bindConnectionInitializer" />

<bean id="bindConnectionInitializer"
      class="org.ldaptive.BindConnectionInitializer"
      p:bindDn="uid=admin,ou=system">
    <property name="bindCredential">
        <bean class="org.ldaptive.Credential"
              c:password="secret" />
    </property>
</bean>

<bean id="abstractConnectionPool" abstract="true"
      class="org.ldaptive.pool.BlockingConnectionPool"
      init-method="initialize"
      destroy-method="close"
      p:poolConfig-ref="ldapPoolConfig"
      p:blockWaitTime="5000"
      p:validator-ref="searchValidator"
      p:pruneStrategy-ref="pruneStrategy" />

<bean id="abstractConnectionConfig" abstract="true"
      class="org.ldaptive.ConnectionConfig"
      p:ldapUrl="ldap://localhost:10389"
      p:connectTimeout="10000"
      p:useStartTLS="false"
      p:sslConfig-ref="sslConfig" />

<bean id="ldapPoolConfig" class="org.ldaptive.pool.PoolConfig"
      p:minPoolSize="10"
      p:maxPoolSize="100"
      p:validateOnCheckOut="true"
      p:validatePeriodically="true"
      p:validatePeriod="50000" />

<bean id="sslConfig" class="org.ldaptive.ssl.SslConfig">
    <property name="credentialConfig">
        <bean class="org.ldaptive.ssl.X509CredentialConfig"
              p:trustCertificates="server.crt" />
    </property>
</bean>

<bean id="pruneStrategy" class="org.ldaptive.pool.IdlePruneStrategy"
      p:prunePeriod="100000"
      p:idleTime="20000" />

<bean id="searchValidator" class="org.ldaptive.pool.SearchValidator" />

<bean id="authHandler" class="org.ldaptive.auth.PooledBindAuthenticationHandler"
      p:connectionFactory-ref="bindPooledLdapConnectionFactory" />

<bean id="bindPooledLdapConnectionFactory"
      class="org.ldaptive.pool.PooledConnectionFactory"
      p:connectionPool-ref="bindConnectionPool" />

<bean id="bindConnectionPool" parent="abstractConnectionPool"
      p:connectionFactory-ref="bindConnectionFactory" />

<bean id="bindConnectionFactory"
      class="org.ldaptive.DefaultConnectionFactory"
      p:connectionConfig-ref="bindConnectionConfig" />

<bean id="bindConnectionConfig" parent="abstractConnectionConfig" />

<util:map id="authenticationHandlersResolvers">
   <entry key-ref="ldapAuthenticationHandler" value-ref="primaryPrincipalResolver" />
</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>


<ldaptive:bind-search-authenticator id="authenticator"
        ldapUrl="ldap://localhost:10389"
        baseDn="ou=people,dc=cloudnine,dc=in"
        userFilter="true"
        bindDn="uid=admin,ou=system"
        bindCredential="secret"
        connectTimeout="3600"
        useStartTLS="false"
        blockWaitTime="3600"
        maxPoolSize="100"
        allowMultipleDns="false"
        usePasswordPolicy="false"
        minPoolSize="1"
        validateOnCheckOut="true"
        validatePeriodically="true"
        validatePeriod="10000"
        idleTime="5"
        prunePeriod="100000"
        failFastInitialize="true"
        subtreeSearch="true"
        useSSL="false"
/>



    <bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">
        <constructor-arg>
            <map>
            <!-- 
                <entry key-ref="acceptUsersAuthenticationHandler" value-ref="usernamePasswordCredentialsResolver" />
   -->
                <entry key-ref="httpBasedAuthenticationHandler" value-ref="httpBasedCredentialsResolver" />
            </map>
        </constructor-arg>
         
  <property name="authenticationMetaDataPopulators">
    <list>
      <bean 
        class="org.jasig.cas.support.saml.authentication.SamlAuthenticationMetaDataPopulator" >
        </bean>
    </list>
  </property>
  
  <property name="authenticationPolicy">
  <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy">
  </bean>
  </property>
</bean>


<alias name="neverThrottle" alias="authenticationThrottle" />
 
            <alias name="acceptAnyAuthenticationPolicyFactory" alias="authenticationPolicyFactory" />
  
  <!-- 
  <alias name="defaultPrincipalFactory" alias="principalFactory" />
   -->
 <bean id="principalFactory" class="org.jasig.cas.authentication.principal.DefaultPrincipalFactory"></bean>  

<!-- 
 <alias name="defaultPrincipalFactory" alias="principalFactory" />
 -->
    <!--
       | Authentication handler beans
       -->
 
    <bean id="acceptUsersAuthenticationHandler"
          class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
        <property name="users">
            <map>
                <entry key="casuser" value="Mellon"/>
            </map>
        </property>
        
        <property name="principalFactory">
<bean  class="org.jasig.cas.authentication.principal.DefaultPrincipalFactory"></bean>        
        </property>
    </bean>

    <bean id="httpBasedAuthenticationHandler"
          class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" />

  
 <alias name="personDirectoryPrincipalResolver" alias="primaryPrincipalResolver" />
 <util:map id="authenticationHandlersResolvers">
        <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
    </util:map>
    
    
    
    <alias name="ldapAuthenticationHandler" alias="primaryAuthenticationHandler" />
<alias name="defaultPasswordEncoder" alias="passwordEncoder" />

  
  
  
    <bean id="attributeRepository"
      class="org.jasig.services.persondir.support.StubPersonAttributeDao">
  <property name="backingMap">
    <map>
      <entry key="uid" value="username"/>
      <entry key="eduPersonAffiliation" value="affiliation"/>
      <entry key="member" value="member"/>
    </map>
  </property>
</bean>

<bean id="principalResolver"
      class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver"
      p:principalAttributeName="username"
      p:attributeRepository-ref="attributeRepository"
      p:returnNullIfNoAttributes="true" />
   
    
    <bean id="ldapPersonAttributeDao" class="org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao">
    <property name="contextSource" ref="contextSource" />
    <property name="baseDN" value="o=example.com,o=isp" />
    <property name="queryAttributeMapping">
        <map>
            <entry key="username" value="uid" />
        </map>
    </property>
    <property name="resultAttributeMapping">
        <map>
            <entry key="uid" value="username" />
            <entry key="givenname" value="first_name" />
            <entry key="sn" value="last_name" />
            <entry key="mail" value="email" />
        </map>
    </property>
</bean>
    <alias name="dataSource" alias="queryEncodeDatabaseDataSource" />
    <bean id="dataSource"
          class="com.mchange.v2.c3p0.ComboPooledDataSource"
          p:driverClass="com.mysql.jdbc.Driver"
          p:jdbcUrl="jdbc.url=jdbc:mysql://localhost:3306/cas"
          p:user="root"
          p:password="cloud"
          p:initialPoolSize="10"
          p:minPoolSize="10"
          p:maxPoolSize="100"
          p:maxIdleTimeExcessConnections="1000" 
          p:checkoutTimeout="10" 
          p:acquireIncrement="5"
          p:acquireRetryAttempts="1"
          p:acquireRetryDelay="2"
          p:idleConnectionTestPeriod="500"
          p:preferredTestQuery="SELECT 1" />

    <!--
       | Credential-to-principal resolver beans
       -->
    <bean id="usernamePasswordCredentialsResolver"
          class="org.jasig.cas.authentication.principal.BasicPrincipalResolver" />

    <bean id="httpBasedCredentialsResolver"
          class="org.jasig.cas.authentication.principal.BasicPrincipalResolver" />
          
         

     
    <bean id="healthCheckMonitor" class="org.jasig.cas.monitor.HealthCheckMonitor" p:monitors-ref="monitorsList" />
   <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.DefaultTicketRegistry" />
   
   
   
    <!-- Expiration policies -->
    <util:constant id="SECONDS" static-field="java.util.concurrent.TimeUnit.SECONDS"/>
    <bean id="serviceTicketExpirationPolicy" class="org.jasig.cas.ticket.support.MultiTimeUseOrTimeoutExpirationPolicy"
          c:numberOfUses="1" c:timeToKill="${st.timeToKillInSeconds:10}" c:timeUnit-ref="SECONDS"/>

    <!-- TicketGrantingTicketExpirationPolicy: Default as of 3.5 -->
    <!-- Provides both idle and hard timeouts, for instance 2 hour sliding window with an 8 hour max lifetime -->
    <bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TicketGrantingTicketExpirationPolicy"
          
        />
   
   
    <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>



Stack Trace
0-Jul-2016 23:46:45.020 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/cas]
20-Jul-2016 23:46:45.036 INFO [localhost-startStop-14] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /home/sagar/Programs/apache-tomcat-8.5.3/webapps/cas.war
20-Jul-2016 23:46:48.096 INFO [localhost-startStop-14] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/sagar/Programs/apache-tomcat-8.5.3/webapps/cas/WEB-INF/lib/log4j-slf4j-impl-2.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/sagar/Programs/apache-tomcat-8.5.3/webapps/cas/WEB-INF/lib/cas-server-core-logging-4.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
2016-07-20 23:46:48,494 INFO [org.jasig.cas.support.saml.SamlServletContextListener] - <Starting up servlet application context...>
2016-07-20 23:46:48,591 INFO [org.jasig.cas.CasEnvironmentContextListener] - <
******************** Welcome to CAS *******************
CAS Version: 4.2.3
Build Date/Time: 2016-06-26T17:58:28.000+05:30
Java Home: /usr/lib/jvm/java-8-oracle/jre
Java Vendor: Oracle Corporation
Java Version: 1.8.0_91
OS Architecture: amd64
OS Name: Linux
OS Version: 4.4.0-31-generic
*******************************************************
>
2016-07-20 23:46:52,225 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - <Loaded 1 services from InMemoryServiceRegistryDaoImpl.>
2016-07-20 23:46:52,394 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - <Services manager will reload service definitions every 60 seconds>
2016-07-20 23:46:54,187 WARN [org.jasig.cas.util.WebflowCipherExecutor] - <Secret key for signing is not defined. CAS will attempt to auto-generate the signing key>
2016-07-20 23:46:54,196 WARN [org.jasig.cas.util.WebflowCipherExecutor] - <Generated signing key 64Tzw98i4zVd7YOeGAqbgkxeF7U7kPXTIJh6rPxZ04_er64StqTgbaI7A7PS7CN64Y0PgogyRSg5yBeMZaRVDg of size 512. The generated key MUST be added to CAS settings.>
2016-07-20 23:46:54,196 WARN [org.jasig.cas.util.WebflowCipherExecutor] - <No encryption key is defined. CAS will attempt to auto-generate keys>
2016-07-20 23:46:54,198 WARN [org.jasig.cas.util.WebflowCipherExecutor] - <Generated encryption key JftzqrdwqQPafBwH of size 16. The generated key MUST be added to CAS settings.>
2016-07-20 23:46:54,373 WARN [org.springframework.web.context.support.XmlWebApplicationContext] - <Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inspektrIpAddressUsernameThrottle': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.jasig.inspektr.audit.AuditTrailManager org.jasig.cas.web.support.InspektrThrottledSubmissionByIpAddressAndUsernameHandlerInterceptorAdapter.auditTrailManager; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.jasig.inspektr.audit.AuditTrailManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=auditTrailManager)}>
20-Jul-2016 23:46:54.792 SEVERE [localhost-startStop-14] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
20-Jul-2016 23:46:54.793 SEVERE [localhost-startStop-14] org.apache.catalina.core.StandardContext.startInternal Context [/cas] startup failed due to previous errors
2016-07-20 23:46:54,789 ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed>
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inspektrIpAddressUsernameThrottle': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.jasig.inspektr.audit.AuditTrailManager org.jasig.cas.web.support.InspektrThrottledSubmissionByIpAddressAndUsernameHandlerInterceptorAdapter.auditTrailManager; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.jasig.inspektr.audit.AuditTrailManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=auditTrailManager)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) ~[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) ~[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) ~[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4716) ~[catalina.jar:8.5.3]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5178) ~[catalina.jar:8.5.3]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) ~[catalina.jar:8.5.3]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) ~[catalina.jar:8.5.3]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702) ~[catalina.jar:8.5.3]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) ~[catalina.jar:8.5.3]
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:952) ~[catalina.jar:8.5.3]
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1823) ~[catalina.jar:8.5.3]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_91]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_91]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_91]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_91]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.jasig.inspektr.audit.AuditTrailManager org.jasig.cas.web.support.InspektrThrottledSubmissionByIpAddressAndUsernameHandlerInterceptorAdapter.auditTrailManager; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.jasig.inspektr.audit.AuditTrailManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=auditTrailManager)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
... 26 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.jasig.inspektr.audit.AuditTrailManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=auditTrailManager)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
... 26 more
2016-07-20 23:46:54,791 INFO [org.jasig.cas.support.saml.SamlServletContextListener] - <Initializing SamlServletContextListener context...>
2016-07-20 23:46:54,792 INFO [org.jasig.cas.support.saml.SamlServletContextListener] - <Adding [/samlValidate] to cas servlet context>
2016-07-20 23:46:54,792 INFO [org.jasig.cas.support.saml.SamlServletContextListener] - <Added [/samlValidate] to cas servlet context>
2016-07-20 23:46:54,792 INFO [org.jasig.cas.support.saml.SamlServletContextListener] - <Initialized SamlServletContextListener context...>
2016-07-20 23:46:54,800 INFO [org.jasig.cas.support.saml.SamlServletContextListener] - <Destroying SamlServletContextListener context...>
2016-07-20 23:46:54,800 INFO [org.jasig.cas.support.saml.SamlServletContextListener] - <Destroyed SamlServletContextListener context...>
20-Jul-2016 23:46:54.812 WARNING [localhost-startStop-14] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [cas] appears to have started a thread named [Thread-38] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.net.SocketInputStream.socketRead0(Native Method)
 java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
 java.net.SocketInputStream.read(SocketInputStream.java:170)
 java.net.SocketInputStream.read(SocketInputStream.java:141)
 java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
 java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
 java.io.BufferedInputStream.read(BufferedInputStream.java:345)
 com.sun.jndi.ldap.Connection.run(Connection.java:860)
 java.lang.Thread.run(Thread.java:745)
20-Jul-2016 23:46:54.812 WARNING [localhost-startStop-14] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [cas] appears to have started a thread named [Thread-39] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 java.lang.Thread.run(Thread.java:745)
20-Jul-2016 23:46:54.813 WARNING [localhost-startStop-14] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [cas] appears to have started a thread named [Thread-40] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.net.SocketInputStream.socketRead0(Native Method)
 java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
 java.net.SocketInputStream.read(SocketInputStream.java:170)
 java.net.SocketInputStream.read(SocketInputStream.java:141)
 java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
 java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
 java.io.BufferedInputStream.read(BufferedInputStream.java:345)
 com.sun.jndi.ldap.Connection.run(Connection.java:860)
 java.lang.Thread.run(Thread.java:745)
20-Jul-2016 23:46:54.813 WARNING [localhost-startStop-14] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [cas] appears to have started a thread named [Thread-41] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 java.lang.Thread.run(Thread.java:745)
20-Jul-2016 23:46:54.816 INFO [localhost-startStop-14] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /home/sagar/Programs/apache-tomcat-8.5.3/webapps/cas.war has finished in 9,779 ms

Brandon Martin

unread,
Oct 14, 2016, 10:24:07 AM10/14/16
to CAS Community, ks19...@gmail.com
I am experiencing the same error with a similar deployersContextConfig.xml.

Were you ever able to get past this one?
Reply all
Reply to author
Forward
0 new messages