[keycloak-user] Custom UserStorage module issue
Nikolay Petrovski
to.petrovski at gmail.com
Wed Nov 30 11:29:22 EST 2016
Hi,
I have the following problem - trying to create a custom *UserStorageProvider
*over my new installation of *Keycloak 2.4.0.Final.* The Kc instance is
configured to work with MongoDB local storage, and I want to attach another
external user storage.
Everything in my custom module seems to work fine, until it gets to :
...
@Override
public UserModel addUser(final RealmModel realm, String username) {
// Add local storage user
UserModel user = session.userLocalStorage().addUser(realm,
username);
user.setFederationLink(model.getId());
return proxy(realm, user, remoteUser);
}
...
That *proxy *method extends with several UserModelDelegate(s), one of them
is a KeycloakTransaction-driven model delegate, which should does external
storage user creation on commit() action.
Pretty much the same code as the LDAP UserStoreProvider.
The problem comes when I try to register new user and a *commit()* is
called (KeycloakTransaction is closed) only "email" and "custom attribute"
properties are filled (setEmail() and setAttribute() are called) within my
delegated object. The user I am trying to create in my external source has
only "Email" and "Phone (as a custom attribute)" values populated after
registration process.
Any idea if I miss something? Or, any other way I can get the whole
UserModel populated while register new user in Keycloak, so then I can send
it over to my external user storage?
More information about the keycloak-user
mailing list