From e7a9b067668ae87986a8e0bececfa370d50914f5 Mon Sep 17 00:00:00 2001 From: Kate Yang <150059882+kateyang1998@users.noreply.github.com> Date: Fri, 22 Nov 2024 11:54:48 -0500 Subject: [PATCH 1/3] update: upgraded JDK version from 11 to 17 - Updated JDK version number. - Removed `java.security.acl.Group` package, it has been deprecated in Java 9, and removed in Java 14. --- .devcontainer/development/Dockerfile | 2 +- .../oscar/login/jaas/BaseLoginModule.java | 21 +++++++------ .../java/oscar/login/jaas/OscarGroup.java | 30 +++++++++++++++---- 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/.devcontainer/development/Dockerfile b/.devcontainer/development/Dockerfile index 75027efa838..9c134ef9fba 100644 --- a/.devcontainer/development/Dockerfile +++ b/.devcontainer/development/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:11-jdk-slim +FROM openjdk:17-jdk-slim # Set environment variables for Tomcat ENV CATALINA_HOME /usr/local/tomcat diff --git a/src/main/java/oscar/login/jaas/BaseLoginModule.java b/src/main/java/oscar/login/jaas/BaseLoginModule.java index 65b031c9250..0a87f96cdff 100644 --- a/src/main/java/oscar/login/jaas/BaseLoginModule.java +++ b/src/main/java/oscar/login/jaas/BaseLoginModule.java @@ -26,7 +26,6 @@ import java.io.IOException; import java.security.Principal; -import java.security.acl.Group; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -66,11 +65,11 @@ public class BaseLoginModule implements LoginModule { private OscarPrincipal principal; - private Group rolesGroup; + private OscarGroup rolesGroup; - private Group callerPrincipal; + private OscarGroup callerPrincipal; - private Group authPrincipal; + private OscarGroup authPrincipal; private boolean authorizationEnabled = false; @@ -164,7 +163,7 @@ public boolean login() throws LoginException { authPrincipal.addMember(getPrincipal()); setAuthPrincipal(authPrincipal); - Group rolesGroup = new OscarGroup("Roles"); + OscarGroup rolesGroup = new OscarGroup("Roles"); for (OscarRole role : getRoles(loginName)) { rolesGroup.addMember(role); } @@ -275,27 +274,27 @@ public void setSharedState(Map sharedState) { this.sharedState = sharedState; } - public Group getRolesGroup() { + public OscarGroup getRolesGroup() { return rolesGroup; } - public void setRolesGroup(Group rolesGroup) { + public void setRolesGroup(OscarGroup rolesGroup) { this.rolesGroup = rolesGroup; } - public Group getCallerPrincipal() { + public OscarGroup getCallerPrincipal() { return callerPrincipal; } - public void setCallerPrincipal(Group callerPrincipal) { + public void setCallerPrincipal(OscarGroup callerPrincipal) { this.callerPrincipal = callerPrincipal; } - public Group getAuthPrincipal() { + public OscarGroup getAuthPrincipal() { return authPrincipal; } - public void setAuthPrincipal(Group authPrincipal) { + public void setAuthPrincipal(OscarGroup authPrincipal) { this.authPrincipal = authPrincipal; } diff --git a/src/main/java/oscar/login/jaas/OscarGroup.java b/src/main/java/oscar/login/jaas/OscarGroup.java index f331e1c99db..9d5dc8f6cd5 100644 --- a/src/main/java/oscar/login/jaas/OscarGroup.java +++ b/src/main/java/oscar/login/jaas/OscarGroup.java @@ -26,13 +26,12 @@ import java.io.Serializable; import java.security.Principal; -import java.security.acl.Group; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; import java.util.List; -public class OscarGroup implements Group, Serializable { +public class OscarGroup implements Principal, Serializable { private static final long serialVersionUID = 1L; @@ -56,25 +55,44 @@ public void setName(String name) { this.name = name; } - @Override + /** + * Adds a member to the group. + * + * @param user the Principal to be added + * @return true whether the member was added + */ public boolean addMember(Principal user) { if (!principals.contains(user)) principals.add(user); return true; } - @Override + /** + * Removes a member from the group. + * + * @param user the Principal to be removed + * @return true whether the member was removed + */ public boolean removeMember(Principal user) { principals.remove(user); return true; } - @Override + /** + * Checks if a Principal is a member of the group. + * + * @param member the Principal to be checked + * @return true if the member exists in the group + */ public boolean isMember(Principal member) { return principals.contains(member); } - @Override + /** + * Returns an enumeration of the group's members. + * + * @return an Enumeration of the members + */ public Enumeration members() { return Collections.enumeration(principals); } From 318aa55746bd87eaef1e28cbd634ee43f920e80c Mon Sep 17 00:00:00 2001 From: Kate Yang <150059882+kateyang1998@users.noreply.github.com> Date: Tue, 26 Nov 2024 10:29:15 -0500 Subject: [PATCH 2/3] fix: added opens to bypass the security restrictions in Java 17 --- .devcontainer/development/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/.devcontainer/development/Dockerfile b/.devcontainer/development/Dockerfile index 9c134ef9fba..e11f444306e 100644 --- a/.devcontainer/development/Dockerfile +++ b/.devcontainer/development/Dockerfile @@ -3,6 +3,7 @@ FROM openjdk:17-jdk-slim # Set environment variables for Tomcat ENV CATALINA_HOME /usr/local/tomcat ENV PATH $CATALINA_HOME/bin:$PATH +ENV CATALINA_OPTS="--add-opens java.base/java.net=ALL-UNNAMED" # Copy Tomcat installation from the official Tomcat image COPY --from=tomcat:9.0.97 /usr/local/tomcat $CATALINA_HOME From 434c5f015b45a871e7b4c581ffb34503882df786 Mon Sep 17 00:00:00 2001 From: Kate Yang <150059882+kateyang1998@users.noreply.github.com> Date: Tue, 26 Nov 2024 11:43:54 -0500 Subject: [PATCH 3/3] update: upgraded JDK version from 17 to 21 --- .devcontainer/development/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/development/Dockerfile b/.devcontainer/development/Dockerfile index e11f444306e..78d8d5d66f7 100644 --- a/.devcontainer/development/Dockerfile +++ b/.devcontainer/development/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:17-jdk-slim +FROM openjdk:21-jdk-slim # Set environment variables for Tomcat ENV CATALINA_HOME /usr/local/tomcat