This is an automated email from the ASF dual-hosted git repository.

smolnar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new f7fcc7a79 KNOX-3038 - The expires_in field in OAuthResource response 
returns the configured token TTL. (#907)
f7fcc7a79 is described below

commit f7fcc7a79e3699470ebfd51237310e7072dba398
Author: Sandor Molnar <[email protected]>
AuthorDate: Fri May 10 09:10:20 2024 +0200

    KNOX-3038 - The expires_in field in OAuthResource response returns the 
configured token TTL. (#907)
    
    Additionally, removed the override of the getExpiry() method because in the 
database the meaning of expiration time must remain the same as in the parent 
class.
---
 .../knox/gateway/service/knoxtoken/OAuthResource.java   |  6 ++----
 .../service/knoxtoken/TokenServiceResourceTest.java     | 17 ++---------------
 2 files changed, 4 insertions(+), 19 deletions(-)

diff --git 
a/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/OAuthResource.java
 
b/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/OAuthResource.java
index 71cf28b2d..4064092b5 100644
--- 
a/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/OAuthResource.java
+++ 
b/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/OAuthResource.java
@@ -79,14 +79,13 @@ public class OAuthResource extends TokenResource {
             // let's get the subset of the KnoxToken Response needed for OAuth
             String accessToken = resp.responseMap.accessToken;
             String passcode = resp.responseMap.passcode;
-            long expires = (long) resp.responseMap.map.get(EXPIRES_IN);
             String tokenType = (String) resp.responseMap.map.get(TOKEN_TYPE);
 
             // build and return the expected OAuth response
             final HashMap<String, Object> map = new HashMap<>();
             map.put(ACCESS_TOKEN, accessToken);
             map.put(TOKEN_TYPE, tokenType);
-            map.put(EXPIRES_IN, expires);
+            map.put(EXPIRES_IN, getTokenLifetimeInSeconds());
             map.put(ISSUED_TOKEN_TYPE, ISSUED_TOKEN_TYPE_ACCESS_TOKEN_VALUE);
             // let's use the passcode as the refresh token
             map.put(REFRESH_TOKEN, passcode);
@@ -103,8 +102,7 @@ public class OAuthResource extends TokenResource {
         }
     }
 
-    @Override
-    protected long getExpiry() {
+    private long getTokenLifetimeInSeconds() {
         long secs = tokenTTL/1000;
 
         String lifetimeStr = request.getParameter(LIFESPAN);
diff --git 
a/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java
 
b/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java
index b072b8d85..9ef8523cf 100644
--- 
a/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java
+++ 
b/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java
@@ -1657,21 +1657,8 @@ public class TokenServiceResourceTest {
 
 
   private String getTagValue(String token, String tagName) {
-    if (!token.contains(tagName)) {
-      return null;
-    }
-    String searchString = "\"" + tagName + "\":";
-    String value = token.substring(token.indexOf(searchString) + 
searchString.length());
-    if (value.startsWith("\"")) {
-      value = value.substring(1);
-    }
-    if (value.contains("\"")) {
-      return value.substring(0, value.indexOf('\"'));
-    } else if (value.contains(",")) {
-      return value.substring(0, value.indexOf(','));
-    } else {
-      return value.substring(0, value.length() - 1);
-    }
+    final Map<String, String> tokenMap = JsonUtils.getMapFromJsonString(token);
+    return tokenMap == null ? null : tokenMap.get(tagName);
   }
 
   /**

Reply via email to