Skip to content

Commit d6e9e8a

Browse files
authored
fixes #97 update openapi-security.yml to add jwtCacheFullSize (#98)
1 parent c0b0edf commit d6e9e8a

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

graphql-security/src/main/resources/config/graphql-security.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,20 @@ logJwtToken: ${graphql-security.logJwtToken:true}
4141
logClientUserScope: ${graphql-security.logClientUserScope:false}
4242

4343
# Enable JWT token cache to speed up verification. This will only verify expired time
44-
# and skip the signature verification as it takes more CPU power and long time.
44+
# and skip the signature verification as it takes more CPU power and a long time. If
45+
# each request has a different jwt token, like authorization code flow, this indicator
46+
# should be turned off. Otherwise, the cached jwt will only be removed after 15 minutes
47+
# and the cache can grow bigger if the number of requests is very high. This will cause
48+
# memory kill in a Kubernetes pod if the memory setting is limited.
4549
enableJwtCache: ${graphql-security.enableJwtCache:true}
4650

51+
# If enableJwtCache is true, then an error message will be shown up in the log if the
52+
# cache size is bigger than the jwtCacheFullSize. This helps the developers to detect
53+
# cache problem if many distinct tokens flood the cache in a short period of time. If
54+
# you see JWT cache exceeds the size limit in logs, you need to turn off the enableJwtCache
55+
# or increase the cache full size to a bigger number from the default 100.
56+
jwtCacheFullSize: ${graphql-security.jwtCacheFullSize:100}
57+
4758
# If you are using light-oauth2, then you don't need to have oauth subfolder for public
4859
# key certificate to verify JWT token, the key will be retrieved from key endpoint once
4960
# the first token is arrived. Default to false for dev environment without oauth2 server

graphql-security/src/test/resources/config/graphql-security.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,20 @@ logJwtToken: ${graphql-security.logJwtToken:true}
4141
logClientUserScope: ${graphql-security.logClientUserScope:false}
4242

4343
# Enable JWT token cache to speed up verification. This will only verify expired time
44-
# and skip the signature verification as it takes more CPU power and long time.
44+
# and skip the signature verification as it takes more CPU power and a long time. If
45+
# each request has a different jwt token, like authorization code flow, this indicator
46+
# should be turned off. Otherwise, the cached jwt will only be removed after 15 minutes
47+
# and the cache can grow bigger if the number of requests is very high. This will cause
48+
# memory kill in a Kubernetes pod if the memory setting is limited.
4549
enableJwtCache: ${graphql-security.enableJwtCache:true}
4650

51+
# If enableJwtCache is true, then an error message will be shown up in the log if the
52+
# cache size is bigger than the jwtCacheFullSize. This helps the developers to detect
53+
# cache problem if many distinct tokens flood the cache in a short period of time. If
54+
# you see JWT cache exceeds the size limit in logs, you need to turn off the enableJwtCache
55+
# or increase the cache full size to a bigger number from the default 100.
56+
jwtCacheFullSize: ${graphql-security.jwtCacheFullSize:100}
57+
4758
# If you are using light-oauth2, then you don't need to have oauth subfolder for public
4859
# key certificate to verify JWT token, the key will be retrieved from key endpoint once
4960
# the first token is arrived. Default to false for dev environment without oauth2 server

0 commit comments

Comments
 (0)