我编写了自己的自定义令牌映射器,以将每个组分配给用户的所有角色映射到访问令牌,作为从组名到角色列表的映射(对象)的单个声明。
但是我似乎无法部署它。这是我的自定义映射器:
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)
有谁知道我怎样才能让它发挥作用?
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |