首页 > 解决方案 > 钥匙斗篷。使用 Admin API 放置 RealmRepresentation 给出“没有字符串参数构造函数/工厂方法来反序列化字符串值”

问题描述

我想使用 Admin API 更改我的领域中的设置。以下 GET 代码有效

url = keycloak_url + '/admin/realms/master'
headers=...
requests.get(url, headers=headers)

但是,当我尝试执行 PUT 时,我收到 500 错误。

params = dict(registrationAllowed=True, rememberMe=True)
# both below don't work
x = requests.put(url, headers=headers, json=json.dumps(params))
x = requests.put(url, headers=headers, data=params)

服务器日志中的错误是:

未捕获的服务器错误:com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造 org.keycloak.representations.idm.RealmRepresentation 的实例(尽管至少存在一个创建者):没有从字符串反序列化的字符串参数构造函数/工厂方法[来源:(io.undertow.servlet.spec.ServletInputStreamImpl); 的值 ('{"registrationAllowed": true, "rememberMe": true}') line: 1, column: 1] at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63) at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1342) at com .fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1031) 在 com.fasterxml.jackson.databind.deser。

标签: jacksonkeycloak

解决方案


愚蠢的错误在我这边,这是

x = requests.put(url, headers=headers, json=params)

推荐阅读