keycloak 从自定义协议映射器抛出身份验证错误
Posted
技术标签:
【中文标题】keycloak 从自定义协议映射器抛出身份验证错误【英文标题】:keycloak throw authentication error from custom protocol mapper 【发布时间】:2020-12-02 09:53:05 【问题描述】:我已经创建了一个扩展自 AbstractOIDCProtocolMapper
的 java 自定义协议映射器
这个映射器调用了一个rest api,我想根据响应的结果在登录时显示一个自定义消息错误。但我不知道该怎么做
我重写了方法
protected void setClaim(IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession)
【问题讨论】:
【参考方案1】:您可以抛出一个扩展 org.keycloak.services.ErrorResponseException 的异常。在那里你可以覆盖
@Override
public Response getResponse()
if (response != null)
return response;
else
OAuth2ErrorRepresentation errorRep = new OAuth2ErrorRepresentation(error, errorDescription);
return Response.status(status).entity(errorRep).type(MediaType.APPLICATION_JSON_TYPE).build();
将任何对象作为实体传递,作为响应的一部分返回。
【讨论】:
以上是关于keycloak 从自定义协议映射器抛出身份验证错误的主要内容,如果未能解决你的问题,请参考以下文章
keycloak 客户端协议映射器(脚本映射器)将请求标头添加到令牌中
keycloak - 使用 kcadm.sh 将协议映射器添加到 keycloak