Skip to content

Commit d27ad5d

Browse files
authored
Update Keycloak to version 26.2.5 (#4)
1 parent ccceaab commit d27ad5d

2 files changed

Lines changed: 18 additions & 13 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2121
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2222

23-
<keycloak.version>26.1.5</keycloak.version>
23+
<keycloak.version>26.2.5</keycloak.version>
2424
<spotbugs.version>4.8.3.1</spotbugs.version>
2525

2626
<jib-maven-plugin.version>3.4.1</jib-maven-plugin.version>

src/main/java/nl/first8/keycloak/services/resources/IdentityBrokerService.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)