我正在尝试使用keycloak CLI创建一个IDP提供程序映射器,类似于下面的

文档中的示例都用于存储映射器。
我试过了
kcadm.sh create components -r my-realm -s name=my-mapper-name -s providerId=oidc-hardcoded-role-idp-mapper -s providerType=org.keycloak.broker.provider.IdentityProviderMapper -s parentId=<parent id> -s 'config.role=["ROLE_MY_ROLE"]'但是这个错误失败了。
14:45:26,325 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (default task-7) Uncaught server error: java.lang.ClassCastException: class org.keycloak.broker.provider.HardcodedRoleMapper cannot be cast to class org.keycloak.component.ComponentFactory (org.keycloak.broker.provider.HardcodedRoleMapper is in unnamed module of loader 'org.keycloak.keycloak-services@9.0.0' @1dd6d570; org.keycloak.component.ComponentFactory is in unnamed module of loader 'org.keycloak.keycloak-server-spi@9.0.0' @8467851)因为与HardcodedLDAPRoleStorageMapperFactory不同,它没有扩展ComponentFactory。
用钥匙斗篷CLI可以做到这一点吗?
谢谢!
发布于 2021-02-05 16:21:32
你必须按以下方式打电话:
./kcadm.sh create identity-provider/instances/<IDP_name>/mappers \
-r <REALM_NAME> \
-s name=<MAPPER_NAME> \
-s identityProviderAlias=<IDP_ALIAS> \
-s identityProviderMapper=oidc-hardcoded-role-idp-mapper \
-s config.role=<ROLE_NAME>为便于复制和粘贴:
./kcadm.sh create identity-provider/instances/<IDP_name>/mappers -r <REALM_NAME> -s name=<MAPPER_NAME> -s identityProviderAlias=<IDP_ALIAS> -s identityProviderMapper=oidc-hardcoded-role-idp-mapper -s config.role=<ROLE_NAME>字段identityProviderMapper是Mapper Type,在您的例子中,它将是oidc-hardcoded-role-idp-mapper。
https://stackoverflow.com/questions/66065755
复制相似问题