我在Spring Boot 2中使用Keycloak 4.1.0.Final,并且我想使用承载令牌对其余端点/services/{some id}/content/{id}
进行身份验证。我已从此处进行设置:https://www.keycloak.org/docs/4.1/securing_apps/index.html#_spring_boot_adapter
在Keycloak服务器上,我创建了一个资源/services/123/content/{id}
,因此只能授予对id = 123的实体的访问权限。所有其他人都将被拒绝。
现在,当我使用承载令牌调用端点时,该令牌将被评估两次。首先,通过授予访问权限的KeycloakAuthenticatorValve
:
05-16-2019 16:04:40调试org.keycloak.adapters.authorization.AbstractPolicyEnforcer-授予路径授权
第二,通过拒绝访问的KeycloakAuthenticatedActionsFilter
:
05-16-2019 16:04:42调试org.keycloak.adapters.authorization.KeycloakAdapterPolicyEnforcer-授权被拒绝-@ [,http-nio-8081-exec-1 @ 304]
我已经看到从AbstractPolicyEnforcer
调用的KeycloakAuthenticatorValve
使用路径/services/123/content/{id}
来评估权限。该路径也在Keycloak服务器上注册。
但是从AbstractPolicyEnforcer
调用的KeycloakAuthenticatedActionsFilter
仅使用未在Keycloak服务器上注册的上下文路径/services
。因此无法授予该权限。
有人知道为什么多次评估令牌吗?可以禁用此功能吗?