如何添加自定义身份提供程序 (OIDC) 映射器

Fal*_*alx 5 keycloak

我编写了自己的自定义令牌映射器,以将每个组分配给用户的所有角色映射到访问令牌,作为从组名到角色列表的映射(对象)的单个声明。

但是我似乎无法部署它。这是我的自定义映射器:

public class HierarchicalAttributesMapper extends AbstractOIDCProtocolMapper 
    implements OIDCAccessTokenMapper, OIDCIDTokenMapper, UserInfoTokenMapper {...}
Run Code Online (Sandbox Code Playgroud)

它基于 GroupMembershipMapper。我在编译的jar的顶层添加了以下文件:

META-INF/services/org.keycloak.broker.provider.IdentityProviderMapper
Run Code Online (Sandbox Code Playgroud)

使用我的 HierarchicalAttributesMapper 的 FQN。当为 keycloak 运行我的 docker 容器时,挂载到 /opt/jboss/standalone/deployments 文件夹时,它会被识别,但随后会抛出此警告:

[org.jboss.modules] (ServerService Thread Pool -- 58) Failed to define class 
technology.idlab.cot.keycloak.oidc.HierarchicalAttributesMapper in Module 
"deployment.keycloak-oidc-hierarchical-attributes-mapper-1.0-SNAPSHOT.jar" 
from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link 
technology/idlab/cot/keycloak/oidc/HierarchicalAttributesMapper (Module 
"deployment.keycloak-oidc-hierarchical-attributes-mapper-1.0-SNAPSHOT.jar" 
from Service Module Loader): 
    org/keycloak/protocol/oidc/mappers/OIDCAccessTokenMapper

(stack-trace omitted)
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎样才能让它发挥作用?