4.1.2: JpaTicketRegistry: No transactional EntityManager available

1,301 views
Skip to first unread message

Robert Oschwald

unread,
Nov 30, 2015, 7:48:05 AM11/30/15
to cas-...@apereo.org
Hi all,

while configuring CAS 4.1.2 with JpaTicketRegistry, I cannot get it to work.
I always receive the following Exception:
Exception thrown executing org.jasig.cas.web.flow.GenerateServiceTicketAction@6e6a43a4 in state 'generateServiceTicket' of flow 'login'
javax.persistence.TransactionRequiredException: No transactional EntityManager available
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:275)
at com.sun.proxy.$Proxy49.merge(Unknown Source)
at org.jasig.cas.ticket.registry.JpaTicketRegistry.updateTicket(JpaTicketRegistry.java:57)


I used the described config in http://jasig.github.io/cas/4.1.x/installation/JPA-Ticket-Registry.html and also added some pointcuts described in

http://stackoverflow.com/a/33663812

But it still fails.

My JPA config is in spring-configuration/ticketRegistry.xml.

Anything else I’m missing?


Robert



Robert Oschwald

unread,
Dec 1, 2015, 10:00:14 AM12/1/15
to cas-...@apereo.org

As I use the JPA Ticket Registry and the JPA Service Registry in my CAS 4.1.2 Server, I assume I need to use the same transactionManager for TicketRegistry and ServiceRegistry.

Therefore I set in the CAS-Server deployerConfigContext:

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

and in the CAS-Server ticketRegistry.xml I added the pointcut and packagesToScan accordingly for the ServiceRegistry:

<util:list id="packagesToScan">
  <value>org.jasig.cas.ticket</value>
  <value>org.jasig.cas.adaptors.jdbc</value>
  <value>org.jasig.cas.services</value>
</util:list>

<aop:config>
  <aop:pointcut id="ticketRegistryOperations" expression="execution(* org.jasig.cas.ticket.registry.JpaTicketRegistry.*(..))"/>
  <aop:pointcut id="ticketRegistryLockingOperations" expression="execution(* org.jasig.cas.ticket.registry.support.JpaLockingStrategy.*(..))"/>
  <aop:pointcut id="serviceRegistryOperations" expression="execution(* org.jasig.cas.services.JpaServiceRegistryDaoImpl.*(..))"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="ticketRegistryOperations"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="ticketRegistryLockingOperations"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceRegistryOperations"/>

</aop:config>


but I receive error:

Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: AbstractRegisteredService is not mapped [select r from AbstractRegisteredService r]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1750)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:350)
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.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:291)
at com.sun.proxy.$Proxy34.createQuery(Unknown Source)
at org.jasig.cas.services.JpaServiceRegistryDaoImpl.load(JpaServiceRegistryDaoImpl.java:50)
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.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy35.load(Unknown Source)
at org.jasig.cas.services.DefaultServicesManagerImpl.load(DefaultServicesManagerImpl.java:165)
at org.jasig.cas.services.DefaultServicesManagerImpl.<init>(DefaultServicesManagerImpl.java:60)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
... 85 more
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: AbstractRegisteredService is not mapped [select r from AbstractRegisteredService r]
at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:96)
at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:120)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:234)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:131)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:93)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:167)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1836)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:342)
... 114 more
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: AbstractRegisteredService is not mapped
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:189)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:109)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:95)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:338)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3678)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3567)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:708)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:564)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:301)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:249)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
... 122 more
>


Any hints?


Robert

Misagh Moayyed

unread,
Dec 1, 2015, 11:15:15 AM12/1/15
to cas-...@apereo.org
No you should not have to use the same transaction manager. 

- Misagh

--
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+u...@apereo.org.
Visit this group at http://groups.google.com/a/apereo.org/group/cas-user/.

Robert Oschwald

unread,
Dec 1, 2015, 11:31:57 AM12/1/15
to Misagh Moayyed, cas-...@apereo.org
ok, so I should use the same config as defined in the Service-Management webapp (http://jasig.github.io/cas/4.1.x/installation/Service-Management.html)?
But then I need to define a different „transactionManager" bean in this case, as it is already defined for the ticketRegistry.

Like so?

deployerConfigContext.xml:


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

<util:list id="packagesToScan">
<value>org.jasig.cas.services</value>
</util:list>

<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="dataSource"
p:jpaVendorAdapter-ref="jpaVendorAdapter"
p:packagesToScan-ref="packagesToScan">
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">${database.dialect:org.hibernate.dialect.HSQLDialect}</prop>
<prop key="hibernate.hbm2ddl.auto“>update</prop>
<prop key="hibernate.jdbc.batch_size">${database.batchSize:1}</prop>
</props>
</property>
</bean>

<bean id="serviceTransactionManager" class=„org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory" />

<tx:advice id="txAdvice" transaction-manager="serviceTransactionManager">
<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>


Robert

Misagh Moayyed

unread,
Dec 1, 2015, 11:52:42 AM12/1/15
to cas-...@apereo.org
You should use the configuration defined here:
http://jasig.github.io/cas/4.1.x/installation/JPA-Ticket-Registry.html

If you already have a transaction manager, you could rename the 2nd one and have it match all other references it needs.

…and are you saying if you end up using the same manager, you get that “not mapped” error?

- Misagh

Tai Hu

unread,
Dec 2, 2015, 12:15:56 AM12/2/15
to CAS Community
Do you find the solution for this "No transactional EntityManager available" issue? I just ran into the exact same problem. For both PostgreSQL and MySQL, merge method is never under a transaction. Thanks.

Misagh Moayyed

unread,
Dec 2, 2015, 1:12:41 PM12/2/15
to CAS Community
I ran a quick test, with both JPA service registry and JPA ticket registry defined in an overlay using the same transaction manager. No issues. 

Post your overlay somewhere on github or pastebin and we might be able to spot something. Otherwise so far, it’s more likely a config issue on your end. 

- Misagh

Misagh Moayyed

unread,
Dec 2, 2015, 1:31:26 PM12/2/15
to CAS Community
No, the default is a JSON service registry + InMemory ticket registry. There are no JPA transactions involved. 

- Misagh

On Dec 2, 2015, at 11:28 AM, frank...@tcg.com wrote:

I did not use overlay approach.   I checked out 4.1.x the code and built it.  I guess that by default Service Registry is JSON based and Ticket registry is  JPA based.  So I am not sure why there is multiple transaction manager.

I do not think it is a code issue because if I switch to use DefaultTicketRegistry and everything works fine.

I will try the overlay approach now and will report back what happened. 

thanks

Frank

Misagh Moayyed

unread,
Dec 4, 2015, 2:27:56 PM12/4/15
to cas-...@apereo.org

First, you want to make sure you are using 4.1.2. No snapshots. Second, if you can post your overlay somewhere that we can locally try to connect to a database, that would be helpful. Otherwise, there is no troubleshooting this in an easy way.

 

From: frank...@tcg.com [mailto:frank...@tcg.com]
Sent: Wednesday, December 2, 2015 8:49 PM
To: jasig-cas-user <jasig-c...@googlegroups.com>
Cc: cas-...@apereo.org; mmoa...@unicon.net
Subject: Re: [cas-user] 4.1.2: JpaTicketRegistry: No transactional EntityManager available

 

You are right. The default is JSON service registry  + InMemory ticket registry. 

 

I changed InMemory ticket registry to JPA registry because my goal was to make CAS work with JpaRegistry.    I got the error "No transactional entitymanager available".  It looked like at lease two other users (Robert and Tai) had the exact same error as me.      

 

The version that I had the problem was 4.1.12-SNAPSHOT.

 

However,  I did try the overlay approach tonight based on this github code (https://github.com/leleuj/cas-overlay-demo)

CAS version was 4.1.0 after cloning the repo and switch to 4.1.x branch. The database that I used was MySQL 5.7.9. 

 

I got a different error "no transaction is in progress] from registry".  (see below)

 

In both overlay and non-overlay approach,  TGT was created and persisted successfully in the database.  But  the trouble was with ST.   Any suggestions will be appreciated.

 

 

 

WHO: casuser+password

WHAT: TGT-**********************************************wt6cjyxwng-cas01.example.org

ACTION: TICKET_GRANTING_TICKET_CREATED

APPLICATION: CAS

WHEN: Wed Dec 02 22:27:20 EST 2015

CLIENT IP ADDRESS: 192.168.1.15

SERVER IP ADDRESS: 192.168.1.15

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

 

> 

2015-12-02 22:27:20,993 ERROR [org.jasig.cas.ticket.registry.JpaTicketRegistry] - <Error getting ticket [TGT-**********************************************wt6cjyxwng-cas01.example.org, javax.persistence.TransactionRequiredException: no transaction is in progress] from registry.>

2015-12-02 22:27:20,994 ERROR [org.jasig.cas.ticket.registry.JpaTicketRegistry] - <Error getting ticket [TGT-**********************************************wt6cjyxwng-cas01.example.org, javax.persistence.TransactionRequiredException: no transaction is in progress] from registry.>

Daniel Frett

unread,
Dec 4, 2015, 4:49:13 PM12/4/15
to CAS Community
Tai,
I also ran into the "merge method is not under a transaction" error. How I solved it was adding in this chunk of config:

<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="ticketRegistryOperations" expression="execution(* org.jasig.cas.ticket.registry.JpaTicketRegistry.*(..))"/>
        <aop:pointcut id="ticketRegistryLockingOperations" expression="execution(* org.jasig.cas.ticket.registry.support.JpaLockingStrategy.*(..))"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="ticketRegistryOperations"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="ticketRegistryLockingOperations"/>
</aop:config>

Between 4.0 and 4.1 the automatic transactions for the TicketRegistery and ServiceRegistry was moved from @Transactional annotations to the tx:advice and aop:config spring xml config.

Hope this helps with your issue Tai.

-Daniel

Tai Hu

unread,
Dec 5, 2015, 10:47:04 AM12/5/15
to jasig-cas-user, cas-...@apereo.org, daniel...@ccci.org
Daniel,
     I already have this settings in my ticketRegistry.xml. Actually I even tried to add AbstractDistributedTicketRegistry there as suggested by a StackOverflow post. However, I still have the same error in my 4.1.2 version.

Tai

Oschwald Robert

unread,
Dec 6, 2015, 7:49:19 AM12/6/15
to cas-...@apereo.org
Misagh,

I added a sample overlay project on GH with JPA Ticket+Service registry config (using a shared TransactionManager in this case).
I receive the same error as in my project:
org.hibernate.hql.internal.ast.QuerySyntaxException: AbstractRegisteredService is not mapped

Here it is:
https://github.com/robertoschwald/jasig-cas-examples-robertoschwald/tree/4.1.2_jpa

Note: The Master branch holds a default overlay config using in-memory (which works and was the base for the JPA config example in 4.1.2_jpa).

Config was done as described in
http://jasig.github.io/cas/4.1.x/installation/JPA-Ticket-Registry.html
and
http://jasig.github.io/cas/4.1.x/installation/Service-Management.html#registered-services

See comment at line 153 in deployerConfigContext of cas-server-overlay.

Please have a look. Thanks!

Robert

Jean L.

unread,
Dec 6, 2015, 5:18:18 PM12/6/15
to jasig-cas-user, cas-...@apereo.org
Hi,

I have the same "No transactional EntityManager available" issue on my side, with a simple JPA Ticket registry (and JSON Service registry).
I have also added a minimal GH project to help reproducing the issue: 

In my case, the TGT ticket is successfully created in the database, but not the ST ticket ("No transactional EntityManager available" occurs before).
I'm using a MySQL 5.5/Tomcat 8 backend.

Regards,

Jean L.

Misagh Moayyed

unread,
Dec 7, 2015, 1:29:50 PM12/7/15
to cas-...@apereo.org

This turned out to be a bug with the entity manager prematurely closing. This will be fixed in 4.1.3; You can try to test this with 4.1.3 SNAPSHOT for the time being until it’s released in a couple of weeks.

 

From: cas-...@apereo.org [mailto:cas-...@apereo.org] On Behalf Of Jean L.
Sent: Sunday, December 6, 2015 3:18 PM
To: jasig-cas-user <jasig-c...@googlegroups.com>
Cc: cas-...@apereo.org
Subject: Re: [cas-user] 4.1.2: JpaTicketRegistry: No transactional EntityManager available

 

Hi,

Misagh Moayyed

unread,
Dec 8, 2015, 2:49:02 PM12/8/15
to cas-...@apereo.org
Thanks. I'll review.

> -----Original Message-----
> From: cas-...@apereo.org [mailto:cas-...@apereo.org] On Behalf Of
> Oschwald Robert
> Sent: Sunday, December 6, 2015 5:49 AM
> To: cas-...@apereo.org
> Subject: Re: [cas-user] 4.1.2: JpaTicketRegistry: No transactional
> EntityManager available
>

Jean L.

unread,
Dec 9, 2015, 4:33:40 AM12/9/15
to jasig-cas-user, cas-...@apereo.org, mmoa...@unicon.net
Thank you very much. I tried your patch and it is working fine on my side.

Daniel Frett

unread,
Dec 26, 2015, 6:21:32 PM12/26/15
to CAS Community, jasig-c...@googlegroups.com, mmoa...@unicon.net
The patch Misagh introduced in 4.1.3 caused a different issue once the backing database connection timed out. I have tracked down what the missing transactional config was for 4.1.x and added it to the documentation.

The JpaTicketRegistry transactional config for 4.1.x should include all of the following pointcuts/advice:

    <tx:advice id="txCentralAuthenticationServiceAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="destroyTicketGrantingTicket" read-only="false" />
            <tx:method name="grantServiceTicket" read-only="false" />
            <tx:method name="delegateTicketGrantingTicket" read-only="false" />
            <tx:method name="validateServiceTicket" read-only="false" />
            <tx:method name="createTicketGrantingTicket" read-only="false" />

            <tx:method name="getTicket" read-only="true" />
            <tx:method name="getTickets" read-only="true" />
        </tx:attributes>
    </tx:advice>

    <tx:advice id="txRegistryAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="deleteTicket" read-only="false" />
            <tx:method name="addTicket" read-only="false" />
            <tx:method name="updateTicket" read-only="false" />
            <tx:method name="getTicket" read-only="true" />
            <tx:method name="getTickets" read-only="true" />
            <tx:method name="sessionCount" read-only="true" />
            <tx:method name="serviceTicketCount" read-only="true" />
        </tx:attributes>
    </tx:advice>

    <tx:advice id="txRegistryServiceTicketDelegatorAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="grantTicketGrantingTicket" read-only="false" />
        </tx:attributes>
    </tx:advice>

    <tx:advice id="txRegistryTicketGrantingTicketDelegatorAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="markTicketExpired" read-only="false" />
            <tx:method name="grantServiceTicket" read-only="false" />
        </tx:attributes>
    </tx:advice>

    <tx:advice id="txRegistryLockingAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="getOwner" read-only="true" />
            <tx:method name="acquire" read-only="false" />
            <tx:method name="release" read-only="false" />
        </tx:attributes>
    </tx:advice>

    <aop:config>
        <aop:pointcut id="ticketRegistryOperations" expression="execution(* org.jasig.cas.ticket.registry.JpaTicketRegistry.*(..))"/>
        <aop:pointcut id="ticketRegistryLockingOperations" expression="execution(* org.jasig.cas.ticket.registry.support.JpaLockingStrategy.*(..))"/>
        <aop:pointcut id="ticketRegistryServiceTicketDelegatorOperations" expression="execution(* org.jasig.cas.ticket.registry.AbstractDistributedTicketRegistry$ServiceTicketDelegator.*(..))"/>
        <aop:pointcut id="ticketRegistryTicketGrantingTicketDelegatorOperations" expression="execution(* org.jasig.cas.ticket.registry.AbstractDistributedTicketRegistry$TicketGrantingTicketDelegator.*(..))"/>
        <aop:pointcut id="casOperations" expression="execution(* org.jasig.cas.CentralAuthenticationServiceImpl.*(..))"/>

        <aop:advisor advice-ref="txRegistryAdvice" pointcut-ref="ticketRegistryOperations"/>
        <aop:advisor advice-ref="txRegistryLockingAdvice" pointcut-ref="ticketRegistryLockingOperations"/>
        <aop:advisor advice-ref="txRegistryTicketGrantingTicketDelegatorAdvice" pointcut-ref="ticketRegistryTicketGrantingTicketDelegatorOperations"/>
        <aop:advisor advice-ref="txRegistryServiceTicketDelegatorAdvice" pointcut-ref="ticketRegistryServiceTicketDelegatorOperations"/>
        <aop:advisor advice-ref="txCentralAuthenticationServiceAdvice" pointcut-ref="casOperations"/>
    </aop:config>

This is only the configuration for the JpaTicketRegistry and does NOT include pointcuts/advice for the JpaServiceRegistryDaoImpl.

Relevant github issue/PRs:


I have tested out the updated config on the sample webapp Jean provided here: https://github.com/jlorieux/cas-jpaTicket and verified it works just putting the updated config in place.

-Daniel

Misagh Moayyed

unread,
Dec 27, 2015, 11:54:08 AM12/27/15
to CAS Community

Patched. Much appreciated.

 

Reply all
Reply to author
Forward
0 new messages