keycloak-uncached
KEYCLOAK-7922 Use Time.currentTimeMillis() instead of System.currentTimeMillis() …
7/24/2018 7:06:46 AM
Changes
adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/authorization/PathCache.java 5(+3 -2)
Details
diff --git a/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/authorization/PathCache.java b/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/authorization/PathCache.java
index dfeb48e..99a46af 100644
--- a/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/authorization/PathCache.java
+++ b/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/authorization/PathCache.java
@@ -21,6 +21,7 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.LockSupport;
+import org.keycloak.common.util.Time;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig.PathConfig;
/**
@@ -154,7 +155,7 @@ public class PathCache {
if(maxAge == -1) {
expiration = -1;
} else {
- expiration = System.currentTimeMillis() + maxAge;
+ expiration = Time.currentTimeMillis() + maxAge;
}
}
@@ -167,7 +168,7 @@ public class PathCache {
}
boolean isExpired() {
- return expiration != -1 ? System.currentTimeMillis() > expiration : false;
+ return expiration != -1 ? Time.currentTimeMillis() > expiration : false;
}
}
}
diff --git a/testsuite/integration-arquillian/test-apps/servlet-authz/keycloak-cache-lifespan-authz-service.json b/testsuite/integration-arquillian/test-apps/servlet-authz/keycloak-cache-lifespan-authz-service.json
index 7c73876..89694a0 100644
--- a/testsuite/integration-arquillian/test-apps/servlet-authz/keycloak-cache-lifespan-authz-service.json
+++ b/testsuite/integration-arquillian/test-apps/servlet-authz/keycloak-cache-lifespan-authz-service.json
@@ -11,7 +11,7 @@
"policy-enforcer": {
"on-deny-redirect-to" : "/servlet-authz-app/accessDenied.jsp",
"path-cache": {
- "lifespan": 10000,
+ "lifespan": 30000,
"max-entries": 1000
},
"paths": [
diff --git a/testsuite/integration-arquillian/test-apps/servlet-authz/src/main/webapp/timeOffset.jsp b/testsuite/integration-arquillian/test-apps/servlet-authz/src/main/webapp/timeOffset.jsp
new file mode 100644
index 0000000..d9d0cd4
--- /dev/null
+++ b/testsuite/integration-arquillian/test-apps/servlet-authz/src/main/webapp/timeOffset.jsp
@@ -0,0 +1,5 @@
+<%@page import="org.keycloak.common.util.Time"%>
+
+<%
+ Time.setOffset(Integer.parseInt(request.getParameter("offset")));
+%>
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheLifespanAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheLifespanAdapterTest.java
index d2dd4a1..0845e1a 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheLifespanAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheLifespanAdapterTest.java
@@ -72,7 +72,8 @@ public class ServletAuthzCacheLifespanAdapterTest extends AbstractServletAuthzAd
assertWasNotDenied();
//Thread.sleep(5000);
- setTimeOffset(10000);
+ setTimeOffset(30);
+ setTimeOffsetOfAdapter(30);
login("alice", "alice");
assertWasNotDenied();
@@ -81,6 +82,11 @@ public class ServletAuthzCacheLifespanAdapterTest extends AbstractServletAuthzAd
assertWasDenied();
resetTimeOffset();
+ setTimeOffsetOfAdapter(0);
});
}
+
+ public void setTimeOffsetOfAdapter(int offset) {
+ this.driver.navigate().to(getResourceServerUrl() + "/timeOffset.jsp?offset=" + String.valueOf(offset));
+ }
}