Skip to content

Commit 51b42e7

Browse files
committed
Merge remote-tracking branch 'IQSS/develop' into FTFix
2 parents 482e50f + f0abe94 commit 51b42e7

File tree

205 files changed

+12651
-1351
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

205 files changed

+12651
-1351
lines changed

.github/workflows/container_maintenance.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ jobs:
173173
with:
174174
platforms: ${{ env.PLATFORMS }}
175175
- name: Setup Trivy binary for vulnerability scanning
176-
uses: aquasecurity/[email protected].3
176+
uses: aquasecurity/[email protected].4
177177
with:
178178
version: v0.63.0
179179

.github/workflows/deploy_beta_testing.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
- uses: actions/checkout@v4
5151

5252
- name: Download war artifact
53-
uses: actions/download-artifact@v4
53+
uses: actions/download-artifact@v5
5454
with:
5555
name: built-app
5656
path: ./

.github/workflows/maven_unit_test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ jobs:
112112
cache: maven
113113

114114
# Get the build output from the unit test job
115-
- uses: actions/download-artifact@v4
115+
- uses: actions/download-artifact@v5
116116
with:
117117
name: java-artifacts
118118
- run: |
@@ -145,7 +145,7 @@ jobs:
145145
cache: maven
146146

147147
# Get the build output from the integration test job
148-
- uses: actions/download-artifact@v4
148+
- uses: actions/download-artifact@v5
149149
with:
150150
name: java-reportdir
151151
- run: tar -xvf java-reportdir.tar

conf/keycloak/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ RUN mvn clean package
1414
# ------------------------------------------
1515
# Stage 2: Build Keycloak Image
1616
# ------------------------------------------
17-
FROM quay.io/keycloak/keycloak:26.1.4
17+
FROM quay.io/keycloak/keycloak:26.3.2
1818

1919
# Add the Oracle JDBC jars
20-
ARG ORACLE_JDBC_VERSION=23.7.0.25.01
20+
ARG ORACLE_JDBC_VERSION=23.8.0.25.04
2121
ADD --chown=keycloak:keycloak https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc11/${ORACLE_JDBC_VERSION}/ojdbc11-${ORACLE_JDBC_VERSION}.jar /opt/keycloak/providers/ojdbc11.jar
2222
ADD --chown=keycloak:keycloak https://repo1.maven.org/maven2/com/oracle/database/nls/orai18n/${ORACLE_JDBC_VERSION}/orai18n-${ORACLE_JDBC_VERSION}.jar /opt/keycloak/providers/orai18n.jar
2323

@@ -29,7 +29,7 @@ COPY --from=builder /app/target/keycloak-dv-builtin-users-authenticator-1.0-SNAP
2929

3030
# Copy additional configurations
3131
COPY ./builtin-users-spi/conf/quarkus.properties /opt/keycloak/conf/
32-
COPY ./test-realm.json /opt/keycloak/data/import/
32+
COPY ./test-realm-include-spi.json /opt/keycloak/data/import/
3333

3434
# Set the Keycloak command
3535
ENTRYPOINT ["/opt/keycloak/bin/kc.sh"]

conf/keycloak/builtin-users-spi/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
</build>
101101

102102
<properties>
103-
<keycloak.version>26.1.4</keycloak.version>
103+
<keycloak.version>26.3.2</keycloak.version>
104104
<java.version>17</java.version>
105105
<jakarta.persistence.version>3.2.0</jakarta.persistence.version>
106106
<mindrot.jbcrypt.version>0.4</mindrot.jbcrypt.version>

conf/keycloak/builtin-users-spi/src/main/java/edu/harvard/iq/keycloak/auth/spi/adapters/DataverseUserAdapter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package edu.harvard.iq.keycloak.auth.spi.adapters;
22

33
import edu.harvard.iq.keycloak.auth.spi.models.DataverseUser;
4+
import edu.harvard.iq.keycloak.auth.spi.providers.DataverseUserStorageProviderFactory;
45
import org.keycloak.component.ComponentModel;
56
import org.keycloak.models.GroupModel;
67
import org.keycloak.models.KeycloakSession;
@@ -15,10 +16,13 @@ public class DataverseUserAdapter extends AbstractUserAdapterFederatedStorage {
1516
protected DataverseUser dataverseUser;
1617
protected String keycloakId;
1718

19+
private static final String ATTRIBUTE_NAME_IDP = "idp";
20+
1821
public DataverseUserAdapter(KeycloakSession session, RealmModel realm, ComponentModel model, DataverseUser dataverseUser) {
1922
super(session, realm, model);
2023
this.dataverseUser = dataverseUser;
2124
keycloakId = StorageId.keycloakId(model, dataverseUser.getBuiltinUser().getId().toString());
25+
this.setSingleAttribute(ATTRIBUTE_NAME_IDP, DataverseUserStorageProviderFactory.PROVIDER_ID);
2226
}
2327

2428
@Override

conf/keycloak/builtin-users-spi/src/main/java/edu/harvard/iq/keycloak/auth/spi/services/DataverseUserService.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,16 @@ public DataverseUser getUserById(String id) {
2727

2828
DataverseBuiltinUser builtinUser = em.find(DataverseBuiltinUser.class, persistenceId);
2929
if (builtinUser == null) {
30-
logger.debugf("User not found for external ID: %s", persistenceId);
30+
logger.debugf("Builtin user not found for external ID: %s", persistenceId);
3131
return null;
3232
}
3333

34-
DataverseAuthenticatedUser authenticatedUser = getAuthenticatedUserByUsername(builtinUser.getUsername());
34+
String username = builtinUser.getUsername();
35+
DataverseAuthenticatedUser authenticatedUser = getAuthenticatedUserByUsername(username);
36+
if (authenticatedUser == null) {
37+
logger.debugf("Authenticated user not found by username: %s", username);
38+
return null;
39+
}
3540

3641
return new DataverseUser(authenticatedUser, builtinUser);
3742
}
@@ -43,11 +48,15 @@ public DataverseUser getUserByUsername(String username) {
4348
.getResultList();
4449

4550
if (users.isEmpty()) {
46-
logger.debugf("User not found by username: %s", username);
51+
logger.debugf("Builtin user not found by username: %s", username);
4752
return null;
4853
}
4954

5055
DataverseAuthenticatedUser authenticatedUser = getAuthenticatedUserByUsername(username);
56+
if (authenticatedUser == null) {
57+
logger.debugf("Authenticated user not found by username: %s", username);
58+
return null;
59+
}
5160

5261
return new DataverseUser(authenticatedUser, users.get(0));
5362
}
@@ -59,7 +68,7 @@ public DataverseUser getUserByEmail(String email) {
5968
.getResultList();
6069

6170
if (authUsers.isEmpty()) {
62-
logger.debugf("User not found by email: %s", email);
71+
logger.debugf("Authenticated user not found by email: %s", email);
6372
return null;
6473
}
6574

@@ -68,6 +77,11 @@ public DataverseUser getUserByEmail(String email) {
6877
.setParameter("username", username)
6978
.getResultList();
7079

80+
if (builtinUsers.isEmpty()) {
81+
logger.debugf("Builtin user not found by username: %s", username);
82+
return null;
83+
}
84+
7185
return new DataverseUser(authUsers.get(0), builtinUsers.get(0));
7286
}
7387

conf/keycloak/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: "3.9"
33
services:
44

55
keycloak:
6-
image: 'quay.io/keycloak/keycloak:26.1.4'
6+
image: 'quay.io/keycloak/keycloak:26.3.2'
77
command:
88
- "start-dev"
99
- "--import-realm"

conf/keycloak/run-keycloak.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env bash
22

3-
DOCKER_IMAGE="quay.io/keycloak/keycloak:26.1.4"
3+
DOCKER_IMAGE="quay.io/keycloak/keycloak:26.3.2"
44
KEYCLOAK_USER="kcadmin"
55
KEYCLOAK_PASSWORD="kcpassword"
66
KEYCLOAK_PORT=8090

0 commit comments

Comments
 (0)