Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Register
Sign in
Toggle navigation
Menu
UPSMF
uphrh-Registration-Core
Commits
98254e7c
Commit
98254e7c
authored
3 years ago
by
Tejash
Browse files
Options
Download
Patches
Plain Diff
enhancing keycloak user attributes with multiple entities
parent
6a01ec4e
main
attestation
consent-api
create_attach_entity_role_to_user
doc
immunization
internal-entity
json-template-type-conv
keycloak-updates
open-saber-rc-2
pr-external-context
pr-template-url
spring-bean-issues
sunbirdrc.dev
test-fix
uat-deploy
upsmfac-main
v0.0.12
v0.0.13
v0.0.12
v0.0.11
v0.0.10
v0.0.9
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.1
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
java/registry/src/main/java/io/opensaber/registry/util/KeycloakAdminUtil.java
+14
-4
...in/java/io/opensaber/registry/util/KeycloakAdminUtil.java
with
14 additions
and
4 deletions
+14
-4
java/registry/src/main/java/io/opensaber/registry/util/KeycloakAdminUtil.java
+
14
−
4
View file @
98254e7c
...
...
@@ -7,6 +7,7 @@ import org.keycloak.OAuth2Constants;
import
org.keycloak.admin.client.Keycloak
;
import
org.keycloak.admin.client.KeycloakBuilder
;
import
org.keycloak.admin.client.resource.RealmResource
;
import
org.keycloak.admin.client.resource.UserResource
;
import
org.keycloak.admin.client.resource.UsersResource
;
import
org.keycloak.representations.idm.CredentialRepresentation
;
import
org.keycloak.representations.idm.GroupRepresentation
;
...
...
@@ -77,9 +78,18 @@ public class KeycloakAdminUtil {
return
userID
;
}
else
if
(
response
.
getStatus
()
==
409
)
{
logger
.
info
(
"UserID: {} exists"
,
userName
);
Optional
<
UserRe
presentation
>
userRepresentationOptional
=
getUserByUsername
(
userName
);
Optional
<
UserRe
source
>
userRepresentationOptional
=
getUserByUsername
(
userName
);
if
(
userRepresentationOptional
.
isPresent
())
{
return
userRepresentationOptional
.
get
().
getId
();
UserResource
userResource
=
userRepresentationOptional
.
get
();
UserRepresentation
userRepresentation
=
userResource
.
toRepresentation
();
List
<
String
>
entities
=
userRepresentation
.
getAttributes
().
get
(
"entity"
);
if
(
entities
.
contains
(
entityName
))
{
throw
new
EntityCreationException
(
"Username already invited / registered for "
+
entityName
);
}
else
{
entities
.
add
(
entityName
);
userResource
.
update
(
userRepresentation
);
return
userRepresentation
.
getId
();
}
}
else
{
logger
.
error
(
"Failed fetching user by username: {}"
,
userName
);
throw
new
EntityCreationException
(
"Creating user failed"
);
...
...
@@ -89,10 +99,10 @@ public class KeycloakAdminUtil {
}
}
private
Optional
<
UserRe
presentation
>
getUserByUsername
(
String
username
)
{
private
Optional
<
UserRe
source
>
getUserByUsername
(
String
username
)
{
List
<
UserRepresentation
>
users
=
keycloak
.
realm
(
realm
).
users
().
search
(
username
);
if
(
users
.
size
()
>
0
)
{
return
Optional
.
of
(
users
.
get
(
0
));
return
Optional
.
of
(
keycloak
.
realm
(
realm
).
users
().
get
(
users
.
get
(
0
)
.
getId
())
);
}
return
Optional
.
empty
();
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets