Joaquín Reñé
18 hours ago 78b085815b9873acdf178b2e9c9598d065fd40c0
securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
....@@ -10,6 +10,7 @@
1010
1111 import jakarta.annotation.security.RolesAllowed;
1212 import jakarta.enterprise.context.RequestScoped;
13
+import jakarta.inject.Inject;
1314 import jakarta.persistence.EntityManager;
1415 import jakarta.persistence.TypedQuery;
1516 import jakarta.servlet.http.HttpServletRequest;
....@@ -26,6 +27,7 @@
2627 import jakarta.ws.rs.core.MediaType;
2728 import jakarta.ws.rs.core.Response;
2829 import jakarta.ws.rs.core.Response.Status;
30
+import jakarta.ws.rs.core.SecurityContext;
2931
3032 import org.apache.logging.log4j.LogManager;
3133 import org.apache.logging.log4j.Logger;
....@@ -55,8 +57,7 @@
5557
5658 private static final Logger LOG = LogManager.getLogger(OrganizationResource.class);
5759
58
- @Context EntityManager em;
59
- @Context BasicSecurityContext bsc;
60
+ @Inject EntityManager em;
6061
6162 public OrganizationResource() { }
6263
....@@ -72,23 +73,28 @@
7273 @Path("/")
7374 @Produces({ MediaType.APPLICATION_JSON })
7475 @Securable
75
- public Response index() {
76
- LOG.info("Getting organizations list ");
77
- em.clear();
78
- TypedQuery<Organization> q;
79
- if (bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN)) {
80
- LOG.info("GEtting all orgs for user: " + bsc.getUserPrincipal());
81
- q = em.createNamedQuery("list-organizations", Organization.class);
82
- } else {
83
- if (bsc.getOrganizationsIds() == null || bsc.getOrganizationsIds().isEmpty()) {
84
- return Response.ok().build();
85
- } else {
86
- q = em.createNamedQuery("list-organizations-by-ids", Organization.class);
87
- q.setParameter("list_ids", bsc.getOrganizationsIds());
88
- }
89
- }
90
- List<Organization> list = q.getResultList();
91
- return Response.ok(list).build();
76
+ public Response index(@Context SecurityContext securityContext) {
77
+ BasicSecurityContext bsc = org.jboss.resteasy.core.ResteasyContext.getContextData(BasicSecurityContext.class);
78
+ if (bsc == null) {
79
+ LOG.error("BasicSecurityContext not found in ResteasyContext");
80
+ return Response.status(Status.UNAUTHORIZED).build();
81
+ }
82
+ LOG.info("Getting organizations list ");
83
+ em.clear();
84
+ TypedQuery<Organization> q;
85
+ if (bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN)) {
86
+ LOG.info("Getting all orgs for user: " + bsc.getUserPrincipal());
87
+ q = em.createNamedQuery("list-organizations", Organization.class);
88
+ } else {
89
+ if (bsc.getOrganizationsIds() == null || bsc.getOrganizationsIds().isEmpty()) {
90
+ return Response.ok().build();
91
+ } else {
92
+ q = em.createNamedQuery("list-organizations-by-ids", Organization.class);
93
+ q.setParameter("list_ids", bsc.getOrganizationsIds());
94
+ }
95
+ }
96
+ List<Organization> list = q.getResultList();
97
+ return Response.ok(list).build();
9298 }
9399
94100 /**