Java keydepeat:使用新创建的客户端和用户获取JWT
使用Java中的Java keydepeat:使用新创建的客户端和用户获取JWT,java,jboss,jwt,keycloak,keycloak-services,Java,Jboss,Jwt,Keycloak,Keycloak Services,使用Java中的keydape管理客户端,我成功地创建了一个新客户端和一个新用户。但是,我似乎无法使用用户为客户端获取JWT 这是我的密码: //创建一个具有管理员权限的keydepot实例 钥匙斗篷钥匙斗篷= keydeposebuilder.builder() .serverUrl(“http://localhost:8080/auth") .grantType(OAuth2Constants.PASSWORD) .realm(“主”) .用户名(“管理员”) .密码(“adminPass”
keydape管理客户端
,我成功地创建了一个新客户端和一个新用户。但是,我似乎无法使用用户为客户端获取JWT
这是我的密码:
//创建一个具有管理员权限的keydepot实例
钥匙斗篷钥匙斗篷=
keydeposebuilder.builder()
.serverUrl(“http://localhost:8080/auth")
.grantType(OAuth2Constants.PASSWORD)
.realm(“主”)
.用户名(“管理员”)
.密码(“adminPass”)
.clientId(“管理cli”)
.resteasyClient(新的ResteasyClientBuilderImpl().connectionPoolSize(10.build())
.build();
//编辑:创建领域“测试领域”
RealmRepresentation realmRep=新的RealmRepresentation();
realmRep.setRealm(“测试领域”);
realmRep.setEnabled(真);
keydape.realms().create(realmRep);
//创建客户端“测试客户端”
ClientRepresentation clientrepress=新的ClientRepresentation();
clientRep.setClientId(“测试客户端”);
clientRep.setSecret(UUID.randomuid().toString());
clientRep.setProtocol(“openid连接”);
//好吧,我的代码有多个问题。这些都是我必须做的事情来解决我的问题:
我必须创建一个新的领域,而不是试图从默认的master
领域获取JWT访问令牌。
我的用户/客户端未启用。
clientRep.setEnabled(true)代码>
userRep.setEnabled(true)代码>
我的客户是仅持币人
,只验证代币,不授予代币。
- 可以使用
public
client(默认)或使用clientRep.setPublicClient(false)将其保密代码>
.grantType(OAuth2Constants.PASSWORD)
听起来您想使用直接访问授权流,但我看不到您的测试客户端中允许使用该流(clientRep
)。这是一个很好的建议,但我尝试了这个,不幸的是,我仍然得到了400
。我以后可能还需要它,所以我会留着以防万一。我发现了这个,我猜我可能需要创建一个新的领域。如果我理解链接答案的问题,您无法从master
领域获得JWT。我尝试使用master
以外的领域,有一段时间我认为我走对了,但我错了,我仍然得到了400
。我不确定是否出于同样的原因,但我将很快更新我的代码片段,以反映我当前得到的内容代码>realmRep.setEnabledEventTypes(列表(“登录错误”、“代码到令牌错误”、“客户端登录错误”)代码>realmRep.setEventsPrivation(172800)代码>也许在管理GUI中会弹出一些事件来帮助您。