I seem to have an issue with 7.0.0-RC9 when combining
cas-server-support-electrofence with cas-server-support-events-jpa.
Example build:
here;
Example configuration:
cas.events.jpa.driverClass=org.postgresql.Driver
cas.events.jpa.dialect=org.hibernate.community.dialect.PostgreSQL95Dialect
cas.events.jpa.url=jdbc:postgresql://localhost/cas7
cas.events.jpa.user=CONFIGURE
cas.events.jpa.password=CONFIGURE
cas.service-registry.json.location=file:///etc/cas/config/services
When I log in with default user and password, I get thrown back to login page. In logs, I can see WARN messages:
2023-11-28 09:44:29,314 WARN [org.apereo.cas.web.flow.resolver.impl.DefaultCasDelegatingWebflowEventResolver] - <No qualifying bean of type 'org.springframework.transaction.TransactionManager' available: expected single matching bean but found 2: ticketTransactionManager,transactionManagerEvents
DefaultListableBeanFactory.java:resolveNamedBean:1310
DefaultListableBeanFactory.java:resolveBean:484
DefaultListableBeanFactory.java:getBean:339
2023-11-28 09:44:29,314 WARN [org.apereo.cas.web.flow.resolver.impl.DefaultCasDelegatingWebflowEventResolver] - <No qualifying bean of type 'org.springframework.transaction.TransactionManager' available: expected single matching bean but found 2: ticketTransactionManager,transactionManagerEvents
DefaultListableBeanFactory.java:resolveNamedBean:1310
DefaultListableBeanFactory.java:resolveBean:484
DefaultListableBeanFactory.java:getBean:339
This seems to happen in the last line of BaseAuthenticationRequestRiskCalculator:getCasTicketGrantingTicketCreatedEventsFor().
When I remove electrofence from gradle file, I get the expected result, which is a "service not allowed" message.
It seemed to me like `@Transactional(readOnly = true)` annotations in JpaCasEventRepository (it's the only place I can
see this exact form of them) do not cooperate transactionManager parameter from @Transactional at the top of the class.
Hovewer, adding transactionManager to every @Transactional there doesn't fix the issue, only messages differ:
2023-11-28 11:26:44,019 WARN [org.apereo.cas.web.flow.resolver.impl.DefaultCasDelegatingWebflowEventResolver] - <org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@21eae802 is closed
AbstractLogicalConnectionImplementor.java:errorIfClosed:37
LogicalConnectionManagedImpl.java:getPhysicalConnection:142
StatementPreparerImpl.java:connection:54
2023-11-28 11:26:44,019 WARN [org.apereo.cas.web.flow.resolver.impl.DefaultCasDelegatingWebflowEventResolver] - <org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@21eae802 is closed
AbstractLogicalConnectionImplementor.java:errorIfClosed:37
LogicalConnectionManagedImpl.java:getPhysicalConnection:142
StatementPreparerImpl.java:connection:54
What am I doing wrong?
Kind regards,
Michał Nowakowski