From 78b085815b9873acdf178b2e9c9598d065fd40c0 Mon Sep 17 00:00:00 2001
From: Joaquín Reñé <jrene@curisit.net>
Date: Mon, 20 Apr 2026 19:30:51 +0000
Subject: [PATCH] #4479 - upgrade SecurisServer to Java 21

---
 securis/src/main/java/net/curisit/securis/services/OrganizationResource.java |   44 +++++++++++++++++++++++++-------------------
 1 files changed, 25 insertions(+), 19 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java b/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
index 30d5940..831e5a3 100644
--- a/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
@@ -10,6 +10,7 @@
 
 import jakarta.annotation.security.RolesAllowed;
 import jakarta.enterprise.context.RequestScoped;
+import jakarta.inject.Inject;
 import jakarta.persistence.EntityManager;
 import jakarta.persistence.TypedQuery;
 import jakarta.servlet.http.HttpServletRequest;
@@ -26,6 +27,7 @@
 import jakarta.ws.rs.core.MediaType;
 import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.SecurityContext;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -55,8 +57,7 @@
 
 	private static final Logger LOG = LogManager.getLogger(OrganizationResource.class);
 
-	@Context EntityManager em;
-	@Context BasicSecurityContext bsc;
+	@Inject EntityManager em;
 
 	public OrganizationResource() { }
 
@@ -72,23 +73,28 @@
 	@Path("/")
 	@Produces({ MediaType.APPLICATION_JSON })
 	@Securable
-	public Response index() {
-		LOG.info("Getting organizations list ");
-		em.clear();
-		TypedQuery<Organization> q;
-		if (bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN)) {
-			LOG.info("GEtting all orgs for user: " + bsc.getUserPrincipal());
-			q = em.createNamedQuery("list-organizations", Organization.class);
-		} else {
-			if (bsc.getOrganizationsIds() == null || bsc.getOrganizationsIds().isEmpty()) {
-				return Response.ok().build();
-			} else {
-				q = em.createNamedQuery("list-organizations-by-ids", Organization.class);
-				q.setParameter("list_ids", bsc.getOrganizationsIds());
-			}
-		}
-		List<Organization> list = q.getResultList();
-		return Response.ok(list).build();
+	public Response index(@Context SecurityContext securityContext) {
+		BasicSecurityContext bsc = org.jboss.resteasy.core.ResteasyContext.getContextData(BasicSecurityContext.class);
+	    if (bsc == null) {
+	    	LOG.error("BasicSecurityContext not found in ResteasyContext");
+	        return Response.status(Status.UNAUTHORIZED).build();
+	    }
+	    LOG.info("Getting organizations list ");
+	    em.clear();
+	    TypedQuery<Organization> q;
+	    if (bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN)) {
+	        LOG.info("Getting all orgs for user: " + bsc.getUserPrincipal());
+	        q = em.createNamedQuery("list-organizations", Organization.class);
+	    } else {
+	        if (bsc.getOrganizationsIds() == null || bsc.getOrganizationsIds().isEmpty()) {
+	            return Response.ok().build();
+	        } else {
+	            q = em.createNamedQuery("list-organizations-by-ids", Organization.class);
+	            q.setParameter("list_ids", bsc.getOrganizationsIds());
+	        }
+	    }
+	    List<Organization> list = q.getResultList();
+	    return Response.ok(list).build();
 	}
 
 	/**

--
Gitblit v1.3.2