@@ -279,7 +279,7 @@ public Response clientInitiatedAccountLinking(@PathParam("provider_alias") Strin
279279 event .success ();
280280
281281 try {
282- IdentityProvider <?> identityProvider = getIdentityProvider (session , realmModel , providerAlias );
282+ IdentityProvider <?> identityProvider = getIdentityProvider (session , providerAlias );
283283 Response response = identityProvider .performLogin (createAuthenticationRequest (identityProvider , providerAlias , clientSessionCode ));
284284
285285 if (response != null ) {
@@ -330,14 +330,14 @@ public Response performLogin(@PathParam("provider_alias") String providerAlias,
330330
331331 ClientSessionCode <AuthenticationSessionModel > clientSessionCode = new ClientSessionCode <>(session , realmModel , authSession );
332332 clientSessionCode .setAction (AuthenticationSessionModel .Action .AUTHENTICATE .name ());
333- IdentityProviderModel identityProviderModel = realmModel . getIdentityProviderByAlias (providerAlias );
333+ IdentityProviderModel identityProviderModel = session . identityProviders (). getByAlias (providerAlias );
334334 if (identityProviderModel == null ) {
335335 throw new IdentityBrokerException ("Identity Provider [" + providerAlias + "] not found." );
336336 }
337337 if (identityProviderModel .isLinkOnly ()) {
338338 throw new IdentityBrokerException ("Identity Provider [" + providerAlias + "] is not allowed to perform a login." );
339339 }
340- if (clientSessionCode != null && clientSessionCode .getClientSession () != null && loginHint != null ) {
340+ if (clientSessionCode .getClientSession () != null && loginHint != null ) {
341341 clientSessionCode .getClientSession ().setClientNote (OIDCLoginProtocol .LOGIN_HINT_PARAM , loginHint );
342342 }
343343
@@ -388,7 +388,7 @@ public Object getEndpoint(@PathParam("provider_alias") String providerAlias) {
388388 IdentityProvider identityProvider ;
389389
390390 try {
391- identityProvider = getIdentityProvider (session , realmModel , providerAlias );
391+ identityProvider = getIdentityProvider (session , providerAlias );
392392 } catch (IdentityBrokerException e ) {
393393 throw new NotFoundException (e .getMessage ());
394394 }
@@ -441,7 +441,7 @@ private Response getToken(String providerAlias, boolean forceRetrieval) {
441441
442442 }
443443
444- IdentityProvider identityProvider = getIdentityProvider (session , realmModel , providerAlias );
444+ IdentityProvider <?> identityProvider = getIdentityProvider (session , providerAlias );
445445 IdentityProviderModel identityProviderConfig = getIdentityProviderConfig (providerAlias );
446446
447447 if (identityProviderConfig .isStoreToken ()) {
@@ -494,7 +494,7 @@ public Response authenticated(BrokeredIdentityContext context) {
494494
495495 context .getIdp ().preprocessFederatedIdentity (session , realmModel , context );
496496 KeycloakSessionFactory sessionFactory = session .getKeycloakSessionFactory ();
497- realmModel . getIdentityProviderMappersByAliasStream (context .getIdpConfig ().getAlias ()).forEach (mapper -> {
497+ session . identityProviders (). getMappersByAliasStream (context .getIdpConfig ().getAlias ()).forEach (mapper -> {
498498 IdentityProviderMapper target = (IdentityProviderMapper ) sessionFactory
499499 .getProviderFactory (IdentityProviderMapper .class , mapper .getIdentityProviderMapper ());
500500 target .preprocessFederatedIdentity (session , realmModel , mapper , context );
@@ -506,7 +506,8 @@ public Response authenticated(BrokeredIdentityContext context) {
506506 this .event .event (EventType .IDENTITY_PROVIDER_LOGIN )
507507 .detail (Details .REDIRECT_URI , authenticationSession .getRedirectUri ())
508508 .detail (Details .IDENTITY_PROVIDER , providerAlias )
509- .detail (Details .IDENTITY_PROVIDER_USERNAME , context .getUsername ());
509+ .detail (Details .IDENTITY_PROVIDER_USERNAME , context .getUsername ())
510+ .detail (Details .IDENTITY_PROVIDER_BROKER_SESSION_ID , context .getBrokerSessionId ());
510511
511512 UserModel federatedUser = this .session .users ().getUserByFederatedIdentity (this .realmModel , federatedIdentityModel );
512513 boolean shouldMigrateId = false ;
@@ -831,7 +832,8 @@ private Response finishBrokerAuthentication(BrokeredIdentityContext context, Use
831832 authSession .setUserSessionNote (Details .IDENTITY_PROVIDER_USERNAME , context .getUsername ());
832833
833834 event .detail (Details .IDENTITY_PROVIDER , providerAlias )
834- .detail (Details .IDENTITY_PROVIDER_USERNAME , context .getUsername ());
835+ .detail (Details .IDENTITY_PROVIDER_USERNAME , context .getUsername ())
836+ .detail (Details .IDENTITY_PROVIDER_BROKER_SESSION_ID , context .getBrokerSessionId ());
835837
836838 if (isDebugEnabled ()) {
837839 logger .debugf ("Performing local authentication for user [%s]." , federatedUser );
@@ -1263,8 +1265,8 @@ private Response notFound(String message) {
12631265 throw ErrorResponse .error (message , Response .Status .NOT_FOUND );
12641266 }
12651267
1266- public static IdentityProvider <?> getIdentityProvider (KeycloakSession session , RealmModel realm , String alias ) {
1267- IdentityProviderModel identityProviderModel = realm . getIdentityProviderByAlias (alias );
1268+ public static IdentityProvider <?> getIdentityProvider (KeycloakSession session , String alias ) {
1269+ IdentityProviderModel identityProviderModel = session . identityProviders (). getByAlias (alias );
12681270
12691271 if (identityProviderModel != null ) {
12701272 IdentityProviderFactory <?> providerFactory = getIdentityProviderFactory (session , identityProviderModel );
@@ -1279,7 +1281,10 @@ public static IdentityProvider<?> getIdentityProvider(KeycloakSession session, R
12791281 throw new IdentityBrokerException ("Identity Provider [" + alias + "] not found." );
12801282 }
12811283
1282- public static IdentityProviderFactory <?> getIdentityProviderFactory (KeycloakSession session , IdentityProviderModel model ) {
1284+ private static IdentityProviderFactory <?> getIdentityProviderFactory (KeycloakSession session , IdentityProviderModel model ) {
1285+ if (model == null ) {
1286+ return null ;
1287+ }
12831288 return Stream .concat (session .getKeycloakSessionFactory ().getProviderFactoriesStream (IdentityProvider .class ),
12841289 session .getKeycloakSessionFactory ().getProviderFactoriesStream (SocialIdentityProvider .class ))
12851290 .filter (providerFactory -> Objects .equals (providerFactory .getId (), model .getProviderId ()))
@@ -1289,7 +1294,7 @@ public static IdentityProviderFactory<?> getIdentityProviderFactory(KeycloakSess
12891294 }
12901295
12911296 private IdentityProviderModel getIdentityProviderConfig (String providerAlias ) {
1292- IdentityProviderModel model = this . realmModel . getIdentityProviderByAlias (providerAlias );
1297+ IdentityProviderModel model = session . identityProviders (). getByAlias (providerAlias );
12931298 if (model == null ) {
12941299 throw new IdentityBrokerException ("Configuration for identity provider [" + providerAlias + "] not found." );
12951300 }
0 commit comments