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);
}
/**