Thanks Marek for your pointer.
I found that I have use xa-data-source. Also, it would be helpful if we can
pure JPA example (without EJB). I'm struggling to populate EntityManager in
the UserStorageProvider Impl. It says,
Caused by: javax.persistence.PersistenceException: No Persistence provider
for EntityManager named user-storage-jpa-example1
at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at
org.keycloak.examples.storage.user.EjbExampleUserStorageProvider.<init>(EjbExampleUserStorageProvider.java:67)
at
org.keycloak.examples.storage.user.EjbExampleUserStorageProviderFactory.create(EjbExampleUserStorageProviderFactory.java:23)
We do have META-INF/persistence.xml and
<?xml version="1.0" encoding="UTF-8" ?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="user-storage-jpa-example1"
transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>java:jboss/datasources/ExampleXADS</jta-data-source>
<class>org.keycloak.examples.storage.user.UserEntity</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.dialect"
value="org.hibernate.dialect.PostgreSQL92Dialect"/>
<property name="hibernate.connection.driver_class"
value="org.postgresql.Driver"/>
<property name="hibernate.connection.username" value="xxxxx"/>
<property name="hibernate.connection.password" value="xxxxx"/>
</properties>
</persistence-unit>
</persistence>
We are looking for EntityManagerFactory using
Persistence.createEntityManagerFactory("user-storage-jpa-example1");
Please advise.
Best regards,
Sachin
On Mon, Apr 9, 2018 at 9:20 PM, Marek Posolda <mposolda(a)redhat.com> wrote:
We have an example for JPA user Provider and also quickstart. I
suggest to
take a look at quickstart or example and compare why it works and yours
doesn't .
Marek
Dne 5.4.2018 v 18:18 Sachin Rastogi napsal(a):
> Hi all,
>
> We are using Keycloak 3.4.3 and loading users via Custom User Federation
> from the database. We are using Postgres 9.4.12
>
> When we are loading users from the database during
> CustomUserStorageProviderFactory.create(..),
> we are getting the following exception:-
>
> It is throwing the following exception during con.createStatement();
>
> 13:46:43,385 ERROR [stderr] (default task-8) java.sql.SQLException:
> IJ031070: Transaction cannot proceed: STATUS_MARKED_ROLLBACK
> 13:46:43,385 ERROR [stderr] (default task-8) at
> org.jboss.jca.adapters.jdbc.WrapperDataSource.checkTransacti
> onActive(WrapperDataSource.java:245)
> 13:46:43,386 ERROR [stderr] (default task-8) at
> org.jboss.jca.adapters.jdbc.WrappedConnection.checkTransacti
> onActive(WrappedConnection.java:1928)
> 13:46:43,386 ERROR [stderr] (default task-8) at
> org.jboss.jca.adapters.jdbc.WrappedConnection.checkStatus(Wr
> appedConnection.java:1943)
> 13:46:43,386 ERROR [stderr] (default task-8) at
> org.jboss.jca.adapters.jdbc.WrappedConnection.checkTransacti
> on(WrappedConnection.java:1917)
> 13:46:43,387 ERROR [stderr] (default task-8) at
> org.jboss.jca.adapters.jdbc.WrappedConnection.createStatemen
> t(WrappedConnection.java:340)
> 13:46:43,387 ERROR [stderr] (default task-8) at
> com.test.service.UserServiceImpl.loadExistingUsers(UserServi
> ceImpl.java:98)
> 13:46:43,387 ERROR [stderr] (default task-8) at com.test.Custom
> UserStorageProviderFactory.create(CustomUserStorageProviderF
> actory.java:43)
>
> But if we call loadExistingUsers in init method of
> CustomUserStorageProviderFactory,
> it works fine. Please advise, what are we doing wrong? what is the ideal
> way of loading existing users in Custom User Federation?
>
> Regards,
> SR
> _______________________________________________
> keycloak-user mailing list
> keycloak-user(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/keycloak-user
>