From ea65db8f370302c8ef48d0dd3e2f66e154e7c7d0 Mon Sep 17 00:00:00 2001
From: Sonia Zorba <sonia.zorba@inaf.it>
Date: Mon, 6 Jul 2020 17:43:03 +0200
Subject: [PATCH] SessionData bugfix

---
 .../it/inaf/ia2/gms/controller/JWTWebServiceController.java   | 2 +-
 gms/src/main/java/it/inaf/ia2/gms/rap/RapClient.java          | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java b/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
index 04a3827..a5ff5cf 100644
--- a/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
+++ b/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
@@ -231,7 +231,7 @@ public class JWTWebServiceController {
         response.setStatus(HttpServletResponse.SC_NO_CONTENT);
     }
 
-    @GetMapping(value = {"/permission/{group:.+}", "/permission/"}, produces = MediaType.TEXT_PLAIN_VALUE)
+    @GetMapping(value = {"/permission/{group:.+}", "/permission"}, produces = MediaType.TEXT_PLAIN_VALUE)
     public void getUserPermission(@PathVariable("group") Optional<String> groupNames, @RequestParam("user_id") Optional<String> userId, HttpServletRequest request, HttpServletResponse response) throws IOException {
 
         if (userId.isPresent()) {
diff --git a/gms/src/main/java/it/inaf/ia2/gms/rap/RapClient.java b/gms/src/main/java/it/inaf/ia2/gms/rap/RapClient.java
index ddb51db..5d8b2bd 100644
--- a/gms/src/main/java/it/inaf/ia2/gms/rap/RapClient.java
+++ b/gms/src/main/java/it/inaf/ia2/gms/rap/RapClient.java
@@ -103,7 +103,7 @@ public class RapClient {
         try {
             return function.apply(getEntity(body));
         } catch (HttpClientErrorException.Unauthorized ex) {
-            if (sessionData == null) {
+            if (request.getSession(false) == null) {
                 // we can't refresh the token without a session
                 throw ex;
             }
@@ -116,7 +116,7 @@ public class RapClient {
 
         HttpHeaders headers = new HttpHeaders();
         headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
-        if (sessionData != null) {
+        if (request.getSession(false) != null) {
             headers.add("Authorization", "Bearer " + sessionData.getAccessToken());
         } else {
             // from JWT web service
-- 
GitLab