Warum fügt Quarkus-KeyCloak-Admin-Client keine Attribute zum Benutzer hinzu?Java

Java-Forum
Anonymous
 Warum fügt Quarkus-KeyCloak-Admin-Client keine Attribute zum Benutzer hinzu?

Post by Anonymous »

In einer Quarkus -Anwendung versuche ich, Tests mit KeyCloak Dev Service -Integration mit diesen Requisiten zu automatisieren: < /p>

Code: Select all

%test.quarkus.oidc.enabled=true
%test.quarkus.keycloak.devservices.enabled=true
%test.quarkus.keycloak.devservices.realm-path=quarkus-realm.json
< /code>
Und diese Abhängigkeiten: < /p>
implementation 'io.quarkus:quarkus-oidc'
implementation 'io.quarkus:quarkus-oidc-client'
implementation("io.quarkus:quarkus-keycloak-admin-client")
wobei der Quarkus-realm.json folgt:

Code: Select all

{
"realm": "quarkus",
"enabled": true,
"groups": [
{
"name": "AziendaXXX"
},
{
"name": "AziendaYYY"
}
],
"users": [
{
"username": "alice",
"enabled": true,
"emailVerified": true,
"firstName": "Alice",
"lastName": "Wonderland",
"credentials": [
{
"type": "password",
"value": "alice"
}
],
"clientRoles": {
"realm-management": [
"view-clients",
"manage-users",
"view-users"
],
"front-end": [
"ADMIN"
]
},
"groups": [
"/AziendaXXX",
"/AziendaYYY"
],
"attributes": {
"phoneNumber": "1234567890",
"profilePic": "alice-pic-base64",
"authType": "keycloak"
}
},
{
"username": "bob",
"enabled": true,
"emailVerified": true,
"firstName": "Bob",
"lastName": "Builder",
"credentials": [
{
"type": "password",
"value": "bob"
}
],
"clientRoles": {
"realm-management": [
"view-clients",
"manage-users",
"view-users"
],
"front-end": [
"ADMIN"
]
},
"groups": [
"/AziendaXXX"
],
"attributes": {
"phoneNumber": "0987654321",
"profilePic": "bob-pic-base64",
"authType": "keycloak"
}
}
],
"clients": [
{
"clientId": "back-end",
"enabled": true,
"secret": "xxx",
"clientAuthenticatorType": "client-secret",
"redirectUris": [
"*"
],
"webOrigins": [
"*"
],
"publicClient": false,
"protocol": "openid-connect",
"serviceAccountsEnabled": true,
"directAccessGrantsEnabled": true
},
{
"clientId": "front-end",
"enabled": true,
"publicClient": true,
"protocol": "openid-connect",
"redirectUris": [
"*"
],
"webOrigins": [
"*"
],
"directAccessGrantsEnabled": true,
"standardFlowEnabled": true,
"implicitFlowEnabled": false,
"serviceAccountsEnabled": false,
"protocolMappers": [
{
"name": "roles",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-client-role-mapper",
"consentRequired": false,
"config": {
"multivalued": "true",
"userinfo.token.claim": "true",
"id.token.claim": "true",
"access.token.claim":  "true",
"claim.name": "roles",
"jsonType.label": "String",
"client.id": "front-end"
}
},
{
"name": "groups-to-aziende",
"protocol": "openid-connect",
"protocolMapper": "oidc-group-membership-mapper",
"consentRequired": false,
"config": {
"claim.name": "aziende",
"full.path": "false",
"id.token.claim": "true",
"access.token.claim": "true",
"userinfo.token.claim": "true"
}
}
]
}
],
"roles": {
"client": {
"front-end": [
{
"name": "ADMIN",
"description": "",
"composite": false,
"clientRole": true
}
]
}
}
}
< /code>
Wenn ich einen vorhandenen Benutzer (Alice oder Bob) erhalte, werden die Attribute korrekt angezeigt, aber wenn ich versuche, einen neuen Benutzer zu erstellen und die Attribute mit dieser Methode zu aktualisieren: < /p>
    private void setUserAttributes(String userId, Map attributes) {

UserResource userResource = keycloak.realm(realm).users().get(userId);
UserRepresentation user = userResource.toRepresentation();

if (attributes != null && !attributes.isEmpty()) {
user.setAttributes(attributes);
userResource.update(user);
}
}
Die Attribute des neuen Benutzers sind null.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post