Package com.simplicite.util.tools
Class KeycloakTool
- java.lang.Object
-
- com.simplicite.util.tools.KeycloakTool
-
public class KeycloakTool extends java.lang.Object
Keycloack API toolbox
see https://www.keycloak.org/
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
KeycloakTool.KeycloakAPI
Keycloak API connectorstatic class
KeycloakTool.KeycloakUser
Keycloak User
-
Constructor Summary
Constructors Constructor Description KeycloakTool()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
clearCache()
Remove static data from memorystatic KeycloakTool.KeycloakAPI
getAPI(java.lang.String provider)
Get the KEYCLOAK_APIstatic org.json.JSONObject
getAPIParameters()
Get KEYCLOAK_API parametersstatic org.json.JSONObject
getAPIParameters(java.lang.String provider)
Get the KEYCLOAK_API parameters { url, service_root, realm, client_id, client_secret, username, password, debug }static org.json.JSONObject
getClient(java.lang.String client)
Search a client of default keycloak APIstatic org.json.JSONArray
getClientRoleUsers(java.lang.String client, java.lang.String role, int max)
List users with a client role of default keycloak APIstatic org.json.JSONArray
getClients()
List all clients of default keycloak APIstatic org.json.JSONObject
getGroup(java.lang.String group)
Search a group of default keycloak APIstatic org.json.JSONArray
getGroupUsers(java.lang.String group, int max)
List users with a given group of default keycloak APIstatic java.lang.String
getToken()
Get token of default keycloak APIstatic KeycloakTool.KeycloakUser
getUser(java.lang.String login)
Get all user information (attributes and groups) from default keycloak providerstatic KeycloakTool.KeycloakUser
getUser(java.lang.String login, java.lang.String provider)
Get all user information (attributes and groups)static java.util.List<java.lang.String>
getUserClientRoles(java.lang.String userUID)
List the user's roles within all clients of default keycloak APIstatic java.util.List<java.lang.String>
getUserClientRoles(java.lang.String userUID, java.lang.String clientUID)
List the user's roles within a client role-mappings of default keycloak APIstatic java.util.List<java.lang.String>
getUserGroups(java.lang.String userUID, int max)
List the user's groups of default keycloak APIstatic org.json.JSONObject
getUserInfo(java.lang.String login)
Get user info of default keycloak API { id, enabled, username, email, firstName, lastName, attributes:{ key:[values]...static java.util.List<java.lang.String>
getUserRealmRoles(java.lang.String userUID)
List the user's roles on realm role-mappings of default keycloak APIstatic boolean
includeGroup(java.lang.String name)
Is the group/role to include into importstatic void
logout(SessionInfo info)
Logout a sessionstatic org.json.JSONArray
searchUsers(java.lang.String filter, int max)
User search of default keycloak APIstatic void
setDebug(boolean b)
Set the debug mode of default keycloak APIstatic void
setUserByAPI(java.lang.String login, SessionInfo info, boolean groups, boolean realmRoles, boolean clientRoles)
Set the session info with Keycloak user using APIstatic void
setUserByLogon(java.lang.String login, SessionInfo info)
Set the session info with Keycloak userstatic java.lang.String
sync(ObjectDB obj)
Synchronize users with all declared KEYCLOACK_APIstatic void
syncClient(org.json.JSONObject params, java.lang.String client, ObjectDB obj)
Import users from a Keycloak client rolesstatic java.lang.String
syncClients(org.json.JSONObject params, org.json.JSONArray clients, ObjectDB obj)
Import users from KEYCLOAK_SYNC.clientsstatic void
syncGroup(org.json.JSONObject params, java.lang.String group, ObjectDB obj)
Import users from a Keycloak groupstatic java.lang.String
syncGroups(org.json.JSONObject params, org.json.JSONArray groups, ObjectDB obj)
Import users from KEYCLOAK_SYNC.groupsstatic void
syncRole(org.json.JSONObject params, java.lang.String role, ObjectDB obj)
Import users from a Keycloak rolestatic java.lang.String
syncRoles(org.json.JSONObject params, org.json.JSONArray roles, ObjectDB obj)
Import users from KEYCLOAK_SYNC.roles
-
-
-
Method Detail
-
getAPI
public static KeycloakTool.KeycloakAPI getAPI(java.lang.String provider)
Get the KEYCLOAK_API- Parameters:
provider
- Optional provider name (default is "keycloak")
-
getAPIParameters
public static org.json.JSONObject getAPIParameters()
Get KEYCLOAK_API parameters- Returns:
- JSON
-
getAPIParameters
public static org.json.JSONObject getAPIParameters(java.lang.String provider)
Get the KEYCLOAK_API parameters { url, service_root, realm, client_id, client_secret, username, password, debug }- Parameters:
provider
- Optional provider (default is "keycloak")- Returns:
- JSON object
-
clearCache
public static void clearCache()
Remove static data from memory
-
setDebug
public static void setDebug(boolean b)
Set the debug mode of default keycloak API
-
getToken
public static java.lang.String getToken()
Get token of default keycloak API
-
logout
public static void logout(SessionInfo info)
Logout a session- Parameters:
info
- Session info with access_token to invalidate
-
getClientRoleUsers
public static org.json.JSONArray getClientRoleUsers(java.lang.String client, java.lang.String role, int max)
List users with a client role of default keycloak API- Parameters:
client
- Client namerole
- Role namemax
- Max result size- Returns:
- Array of Keycloak users
-
getGroup
public static org.json.JSONObject getGroup(java.lang.String group)
Search a group of default keycloak API- Parameters:
group
- Group name- Returns:
- Keycloak group
-
getClient
public static org.json.JSONObject getClient(java.lang.String client)
Search a client of default keycloak API- Parameters:
client
- Client name- Returns:
- Keycloak client
-
getClients
public static org.json.JSONArray getClients()
List all clients of default keycloak API- Returns:
- Keycloak clients
-
getGroupUsers
public static org.json.JSONArray getGroupUsers(java.lang.String group, int max)
List users with a given group of default keycloak API- Parameters:
group
- Group namemax
- Max result size- Returns:
- Array of Keycloak users
-
searchUsers
public static org.json.JSONArray searchUsers(java.lang.String filter, int max)
User search of default keycloak API- Parameters:
filter
- A String contained in username, first or last name, or emailmax
- Max result size- Returns:
- Array of Keycloak users
-
getUserInfo
public static org.json.JSONObject getUserInfo(java.lang.String login)
Get user info of default keycloak API { id, enabled, username, email, firstName, lastName, attributes:{ key:[values]... }, ... }- Parameters:
login
-- Returns:
- JSON object
-
getUserRealmRoles
public static java.util.List<java.lang.String> getUserRealmRoles(java.lang.String userUID)
List the user's roles on realm role-mappings of default keycloak API- Parameters:
userUID
- User keycloak Id- Returns:
- List of granted roles
-
getUserClientRoles
public static java.util.List<java.lang.String> getUserClientRoles(java.lang.String userUID, java.lang.String clientUID)
List the user's roles within a client role-mappings of default keycloak API- Parameters:
userUID
- User keycloak Id of default keycloak APIclientUID
- Client keycloak Id- Returns:
- List of granted roles or null
-
getUserClientRoles
public static java.util.List<java.lang.String> getUserClientRoles(java.lang.String userUID)
List the user's roles within all clients of default keycloak API- Parameters:
userUID
- User keycloak Id- Returns:
- List of granted roles or null
-
getUserGroups
public static java.util.List<java.lang.String> getUserGroups(java.lang.String userUID, int max)
List the user's groups of default keycloak API- Parameters:
userUID
- User keycloak Idmax
- Max size of result- Returns:
- List of granted groups
-
getUser
public static KeycloakTool.KeycloakUser getUser(java.lang.String login)
Get all user information (attributes and groups) from default keycloak provider- Parameters:
login
- User login- Returns:
- Keycloak user
-
getUser
public static KeycloakTool.KeycloakUser getUser(java.lang.String login, java.lang.String provider)
Get all user information (attributes and groups)- Parameters:
login
- User loginprovider
- keycloak provider name- Returns:
- Keycloak user
-
setUserByLogon
public static void setUserByLogon(java.lang.String login, SessionInfo info)
Set the session info with Keycloak user- Parameters:
login
- Login of userinfo
- Session info to load
-
setUserByAPI
public static void setUserByAPI(java.lang.String login, SessionInfo info, boolean groups, boolean realmRoles, boolean clientRoles)
Set the session info with Keycloak user using API- Parameters:
login
- Login of userinfo
- Session info to loadgroups
- Import Keycloak groups as local groups?realmRoles
- Import Keycloak realm roles as local groups?clientRoles
- Import Keycloak client roles as local groups?
-
syncGroups
public static java.lang.String syncGroups(org.json.JSONObject params, org.json.JSONArray groups, ObjectDB obj)
Import users from KEYCLOAK_SYNC.groups- Parameters:
params
- Sync parametersgroups
- List of Keycloak group namesobj
- optional caller object (to stop asynchronous action)
-
syncRoles
public static java.lang.String syncRoles(org.json.JSONObject params, org.json.JSONArray roles, ObjectDB obj)
Import users from KEYCLOAK_SYNC.roles- Parameters:
params
- Sync parametersroles
- List of Keycloak role namesobj
- optional caller object (to stop asynchronous action)
-
syncClients
public static java.lang.String syncClients(org.json.JSONObject params, org.json.JSONArray clients, ObjectDB obj)
Import users from KEYCLOAK_SYNC.clients- Parameters:
params
- Sync parametersclients
- List of Keycloak client namesobj
- optional caller object (to stop asynchronous action)
-
syncGroup
public static void syncGroup(org.json.JSONObject params, java.lang.String group, ObjectDB obj)
Import users from a Keycloak group- Parameters:
params
- Sync parametersgroup
- Keycloak group nameobj
- optional caller object (to stop asynchronous action)
-
syncRole
public static void syncRole(org.json.JSONObject params, java.lang.String role, ObjectDB obj)
Import users from a Keycloak role- Parameters:
params
- Sync parametersrole
- Keycloak role nameobj
- optional caller object (to stop asynchronous action)
-
syncClient
public static void syncClient(org.json.JSONObject params, java.lang.String client, ObjectDB obj)
Import users from a Keycloak client roles- Parameters:
params
- Sync parametersclient
- Keycloak client nameobj
- optional caller object (to stop asynchronous action)
-
includeGroup
public static boolean includeGroup(java.lang.String name)
Is the group/role to include into import- Parameters:
name
- Group or role name- Returns:
- true if name belongs to USER_SYNC_GROUPS_INCLUDE
-
sync
public static java.lang.String sync(ObjectDB obj)
Synchronize users with all declared KEYCLOACK_API- Parameters:
obj
- Optional caller object- Returns:
- Message
-
-