用户存储SPI中的Keycloak自定义异常

时间:2020-03-12 10:44:11

标签: java keycloak spi

我们有自己的UserStorageProvider和UserRegistrationProvider实现。 在addUser中,我想引发自定义异常

@Override
public UserModel addUser(RealmModel realmModel, String s) {
  throw new CustomException("Custom exception");
}

但是如何从客户端处理呢?

总是出现500 Internal Server Error
{"error":"unknown_error"}

在其中回复。 我想查看另一个状态代码和错误消息。 如何实现这种行为? 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试扩展Keycloak的Exception类之一。

例如,使用org.keycloak.services.ErrorResponseException可以在构造函数中定义(字符串错误,字符串errorDescription,Response.Status状态)。

您还可以检查所有扩展javax.ws.rs.WebApplicationException的异常,也许您会找到适合您情况的更合适的示例。