You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Keycloak中控制自定义ProtocolMapper的执行顺序?

控制Keycloak自定义ProtocolMapper执行顺序的方法

Keycloak中自定义ProtocolMapper的执行顺序不依赖于org.keycloak.protocol.ProtocolMapper注册文件里的类名排列顺序,可通过以下两种方式控制:

1. 控制台手动调整(针对已添加到客户端的Mapper)

若你的Mapper已添加到具体客户端中,可直接在管理控制台调整执行顺序:

  • 进入目标客户端的Mappers标签页
  • 找到自定义Mapper,点击右侧的上下箭头图标,拖动或点击箭头调整排列顺序
  • Keycloak会严格按照该页面的顺序执行Mapper

2. 代码指定优先级(针对自定义Mapper类)

若需在代码层面固定顺序,可让自定义Mapper类重写getPriority()方法(不同Keycloak版本API略有差异,部分版本中ProtocolMapper接口已包含该方法):

  • 优先级数值越小,执行顺序越靠前
  • 示例代码:
public class FirstMapper extends AbstractOIDCProtocolMapper implements OIDCAccessTokenMapper {
    @Override
    public int getPriority() {
        return 10; // 优先级低于数值更小的Mapper
    }
    
    // 其他Mapper逻辑代码...
}
public class SecondMapper extends AbstractOIDCProtocolMapper implements OIDCAccessTokenMapper {
    @Override
    public int getPriority() {
        return 5; // 比FirstMapper先执行
    }
    
    // 其他Mapper逻辑代码...
}

注意事项

  • 控制台调整的优先级会覆盖代码中定义的优先级,手动调整后代码里的优先级设置将失效
  • 不同Keycloak版本的API可能存在细微差异,建议对照对应版本的官方文档确认方法有效性

内容的提问来源于stack exchange,提问作者Pavel Bukhalov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:04:51