Hi,

I am using 4.1.8 snapshot CAS, because that is the only version that has 
fixed the "Identifier too long" bug in JPA Service Registry for Oracle.

But I run into this error when login to CAS, did anyone have the same 
problem?    When I switch back to 4.1.5 release of CAS, it works fine (but 
obviously, I cannot use Server Registry in Oracle, but JSON instead.)

Any suggestions?  The error follow.  I wonder if I misconfigured something, 
but switching to 4.1.5 CAS works correctly.  

Can someone verify that I have deployerConfigContext.xml defined correctly, 
at the bottom of this email?  

Thx,



2016-04-12 17:13:43,997 DEBUG 
[org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver] - <Resolving 
argument [UsernamePasswordCredential] for audit>

2016-04-12 17:13:43,998 INFO 
[org.jasig.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit 
trail record BEGIN

=============================================================

WHO: castempadmin

WHAT: 'principal' cannot be null.

Check the correctness of @Audit annotation at the following audit point: 
execution(public abstract transient 
org.jasig.cas.authentication.Authentication org.jasig.cas.authenticatio

n.AuthenticationManager.authenticate(org.jasig.cas.authentication.Credential[]))

ACTION: TICKET_GRANTING_TICKET_NOT_CREATED

APPLICATION: CAS

WHEN: Tue Apr 12 17:13:43 EDT 2016

CLIENT IP ADDRESS: 127.0.0.1

SERVER IP ADDRESS: 127.0.0.1

=============================================================

 

> 

2016-04-12 17:13:44,002 DEBUG 
[org.jasig.cas.web.flow.AuthenticationViaFormAction] - <'principal' cannot 
be null.

Check the correctness of @Audit annotation at the following audit point: 
execution(public abstract transient 
org.jasig.cas.authentication.Authentication org.jasig.cas.authenticatio

n.AuthenticationManager.authenticate(org.jasig.cas.authentication.Credential[]))

java.lang.IllegalArgumentException: 'principal' cannot be null.

Check the correctness of @Audit annotation at the following audit point: 
execution(public abstract transient 
org.jasig.cas.authentication.Authentication org.jasig.cas.authenticatio

n.AuthenticationManager.authenticate(org.jasig.cas.authentication.Credential[]))

        at 
org.jasig.inspektr.audit.AuditActionContext.assertNotNull(AuditActionContext.java:80)

        at 
org.jasig.inspektr.audit.AuditActionContext.<init>(AuditActionContext.java:62)

        at 
org.jasig.inspektr.audit.AuditTrailManagementAspect.executeAuditCode(AuditTrailManagementAspect.java:153)

        at 
org.jasig.inspektr.audit.AuditTrailManagementAspect.handleAuditTrail(AuditTrailManagementAspect.java:141)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:606)

        at 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)

        at 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)

        at 
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:68)

        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)

        at 
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)

        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

        at 
com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(AbstractMetricMethodInterceptor.java:62)

        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)




This is my customized deployerConfigContext.xml




<beans xmlns="http://www.springframework.org/schema/beans";

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";

       xmlns:context="http://www.springframework.org/schema/context";

       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:jee="http://www.springframework.org/schema/jee";

       xmlns:sec="http://www.springframework.org/schema/security";

       xmlns:jpa="http://www.springframework.org/schema/data/jpa";

       xmlns:aop="http://www.springframework.org/schema/aop";

       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd

       http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context.xsd

       http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx.xsd

       http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop.xsd  

       http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security.xsd

  http://www.springframework.org/schema/jee 
http://www.springframework.org/schema/jee/spring-jee.xsd

       http://www.springframework.org/schema/util 
http://www.springframework.org/schema/util/spring-util.xsd

       http://www.springframework.org/schema/data/jpa 
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"; >

    <!--

       | 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="jaasAuthenticationHandler" 
value-ref="primaryPrincipalResolver" />

                

                <!-- 

                
https://jasig.github.io/cas/4.1.x/installation/Configuring-Principal-Resolution.html#principalresolver-vs-authenticationhandler

                

                The principal resolution machinery provided by 
AuthenticationHandler components should be used in preference to 
PrincipalResolver 

                in any situation where the former provides adequate 
functionality. If the principal that is resolved by the authentication 
handler 

                suffices, then a null value may be passed in place of the 
resolver bean id:

                

                <entry key-ref="passwordHandler" value="#{null}"/>

                 -->

            </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>

        -->


        <!--

           | 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="supportsTrustStoreSslSocketFactoryHttpClient" />


    <!--

       | 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="jaasAuthenticationHandler" 
class="org.jasig.cas.authentication.handler.support.JaasAuthenticationHandler" 
/>


    <!-- Required for proxy ticket mechanism -->

    <bean id="proxyPrincipalResolver"

          
class="org.jasig.cas.authentication.principal.BasicPrincipalResolver" />


    <bean id="primaryPrincipalResolver"

          
class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver" 
>

        <property name="attributeRepository" ref="attributeRepository" />

    </bean>


    <jee:jndi-lookup id="authDS"

    jndi-name="jdbc/authDS"

    expected-type="javax.sql.DataSource" />

      

    <jpa:repositories base-package="org.jasig.cas.model" />

    <bean id="transactionManager" 

          class="org.springframework.orm.jpa.JpaTransactionManager"

          p:entityManagerFactory-ref="entityManagerFactory" />

       

    <bean id="entityManagerFactory" 

          
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"

     p:dataSource-ref="authDS">

        <property name="persistenceUnitName" value="CASPersistence" />

        <property name="jpaVendorAdapter">

            <bean 
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"

      p:showSql="false" />

        </property>

    </bean>

        

<bean id="attributeRepository"

class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">


<constructor-arg index="0" ref="authDS" />

<constructor-arg index="1"

value="select e_mail_address, first_name, last_name, full_name, active, 
network_id, employee from login_user where {0}" />

<property name="queryAttributeMapping">

<map>

<entry key="username" value="login_name" />

</map>

</property>


<property name="resultAttributeMapping">

<map>

<entry key="e_mail_address" value="emailAddress" />

<entry key="first_name" value="firstName" />

<entry key="last_name" value="lastName" />

<entry key="full_name" value="fullName" />

<entry key="active" value="isActive" />

<entry key="network_id" value="QuestId" />

<entry key="employee" value="isEmployee" /> 

</map>

</property>

</bean>    


<tx:advice id="txAdvice" transaction-manager="transactionManager">

   <tx:attributes>

       <tx:method name="delete*" read-only="false"/>

       <tx:method name="save*" read-only="false"/>

       <tx:method name="update*" read-only="false"/>

       <tx:method name="get*" read-only="true"/>

       <tx:method name="*" />

   </tx:attributes>

</tx:advice>

<aop:config>

   <aop:pointcut id="servicesManagerOperations" expression="execution(* 
org.jasig.cas.services.JpaServiceRegistryDaoImpl.*(..))"/>

   <aop:advisor advice-ref="txAdvice" 
pointcut-ref="servicesManagerOperations"/>

</aop:config>



    <bean id="serviceRegistryDao" 
 class="org.jasig.cas.services.JpaServiceRegistryDaoImpl" />

          

    <bean id="auditTrailManager" 
class="org.jasig.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>

 

-- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cas-user+unsubscr...@apereo.org.
Visit this group at https://groups.google.com/a/apereo.org/group/cas-user/.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/68160efd-9e7c-4d69-949e-28d6905b288c%40apereo.org.
For more options, visit https://groups.google.com/a/apereo.org/d/optout.

Reply via email to