Package com.simplicite.util.tools
Class KeycloakTool.KeycloakAPI
- java.lang.Object
-
- com.simplicite.util.tools.KeycloakTool.KeycloakAPI
-
- Enclosing class:
- KeycloakTool
public static class KeycloakTool.KeycloakAPI extends java.lang.Object
Keycloak API connector
-
-
Constructor Summary
Constructors Constructor Description KeycloakAPI(java.lang.String provider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.json.JSONObject
authent()
Connect to API and get a new session tokenjava.lang.Object
call(java.lang.String service, java.lang.String method, java.util.Map<java.lang.String,java.lang.String> params)
Call the APIorg.json.JSONObject
getClient(java.lang.String client)
Search a clientorg.json.JSONArray
getClientRoles(java.lang.String client, int max)
List client's rolesorg.json.JSONArray
getClientRoleUsers(java.lang.String client, java.lang.String role, int max)
List users with a client roleorg.json.JSONArray
getClients()
List all clientsorg.json.JSONObject
getGroup(java.lang.String group)
Search a grouporg.json.JSONArray
getGroupUsers(java.lang.String group, int max)
List users with a given grouporg.json.JSONArray
getRoleUsers(java.lang.String role, int max)
List users with a given roleorg.json.JSONObject
getSyncParameters()
Get the setting of KEYCLOAK_SYNC providerjava.lang.String
getToken()
Get a token to use APIjava.util.List<java.lang.String>
getUserClientRoles(java.lang.String userUID)
List the user's roles within all clientsjava.util.List<java.lang.String>
getUserClientRoles(java.lang.String userUID, java.lang.String clientUID)
List the user's roles within a client role-mappingsjava.util.List<java.lang.String>
getUserGroups(java.lang.String userUID, int max)
List the user's groupsorg.json.JSONObject
getUserInfo(java.lang.String login)
Get user info { id, enabled, username, email, firstName, lastName, attributes:{ key:[values]...java.util.List<java.lang.String>
getUserRealmRoles(java.lang.String userUID)
List the user's roles on realm role-mappingsboolean
isDebug()
Debug API access?void
logout(SessionInfo info)
Logout a sessionorg.json.JSONObject
refresh()
Refresh the access_token when the refresh_token has not expiredorg.json.JSONArray
searchUsers(java.lang.String filter, int max)
User searchvoid
setDebug(boolean b)
Set the debug modejava.lang.String
sync(ObjectDB obj)
Synchronize Keycloak usersvoid
sync(org.json.JSONObject params, org.json.JSONArray users, java.lang.String name, ObjectDB obj)
Import users from a Keycloak group/rolevoid
syncClient(org.json.JSONObject params, java.lang.String client, ObjectDB obj)
Import users from a Keycloak client rolesjava.lang.String
syncClients(org.json.JSONObject params, org.json.JSONArray clients, ObjectDB obj)
Import users from KEYCLOAK_SYNC.clientsvoid
syncGroup(org.json.JSONObject params, java.lang.String group, ObjectDB obj)
Import users from a Keycloak groupjava.lang.String
syncGroups(org.json.JSONObject params, org.json.JSONArray groups, ObjectDB obj)
Import users from KEYCLOAK_SYNC.groupsvoid
syncRole(org.json.JSONObject params, java.lang.String role, ObjectDB obj)
Import users from a Keycloak rolejava.lang.String
syncRoles(org.json.JSONObject params, org.json.JSONArray roles, ObjectDB obj)
Import users from KEYCLOAK_SYNC.roles
-
-
-
Method Detail
-
isDebug
public boolean isDebug()
Debug API access?- Returns:
- true to debug calls
-
setDebug
public void setDebug(boolean b)
Set the debug mode
-
authent
public org.json.JSONObject authent()
Connect to API and get a new session token- Returns:
- JSONObject with access_token and refresh_token
-
getToken
public java.lang.String getToken()
Get a token to use API- Returns:
- A bearer token if authorized, null if not authorized
-
refresh
public org.json.JSONObject refresh()
Refresh the access_token when the refresh_token has not expired- Returns:
- JSONObject with access_token and refresh_token
-
call
public java.lang.Object call(java.lang.String service, java.lang.String method, java.util.Map<java.lang.String,java.lang.String> params)
Call the API- Parameters:
service
- Service parametersmethod
- HTTP method GET|POST|PUT|DELETEparams
- Optional parameters to POST- Returns:
- response as JSONObject or JSONArray
-
logout
public void logout(SessionInfo info)
Logout a session- Parameters:
info
- Session info with access_token to invalidate
-
getRoleUsers
public org.json.JSONArray getRoleUsers(java.lang.String role, int max)
List users with a given role- Parameters:
role
- Role namemax
- Max result size- Returns:
- Array of Keycloak users
-
getClientRoles
public org.json.JSONArray getClientRoles(java.lang.String client, int max)
List client's roles- Parameters:
client
- Client namemax
- Max result size- Returns:
- Array of Keycloak roles
-
getClientRoleUsers
public org.json.JSONArray getClientRoleUsers(java.lang.String client, java.lang.String role, int max)
List users with a client role- Parameters:
client
- Client namerole
- Role namemax
- Max result size- Returns:
- Array of Keycloak users
-
getGroup
public org.json.JSONObject getGroup(java.lang.String group)
Search a group- Parameters:
group
- Group name- Returns:
- Keycloak group
-
getClient
public org.json.JSONObject getClient(java.lang.String client)
Search a client- Parameters:
client
- Client name- Returns:
- Keycloak client
-
getClients
public org.json.JSONArray getClients()
List all clients- Returns:
- Keycloak clients
-
getGroupUsers
public org.json.JSONArray getGroupUsers(java.lang.String group, int max)
List users with a given group- Parameters:
group
- Group namemax
- Max result size- Returns:
- Array of Keycloak users
-
searchUsers
public org.json.JSONArray searchUsers(java.lang.String filter, int max)
User search- Parameters:
filter
- A String contained in username, first or last name, or emailmax
- Max result size- Returns:
- Array of Keycloak users
-
getUserInfo
public org.json.JSONObject getUserInfo(java.lang.String login)
Get user info { id, enabled, username, email, firstName, lastName, attributes:{ key:[values]... }, ... }- Parameters:
login
-- Returns:
- JSON object
-
getUserRealmRoles
public java.util.List<java.lang.String> getUserRealmRoles(java.lang.String userUID)
List the user's roles on realm role-mappings- Parameters:
userUID
- User keycloak Id- Returns:
- List of granted roles
-
getUserClientRoles
public 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- Parameters:
userUID
- User keycloak IdclientUID
- Client keycloak Id- Returns:
- List of granted roles or null
-
getUserClientRoles
public java.util.List<java.lang.String> getUserClientRoles(java.lang.String userUID)
List the user's roles within all clients- Parameters:
userUID
- User keycloak Id- Returns:
- List of granted roles or null
-
getUserGroups
public java.util.List<java.lang.String> getUserGroups(java.lang.String userUID, int max)
List the user's groups- Parameters:
userUID
- User keycloak Id- Returns:
- List of granted groups
-
syncGroups
public 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 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 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 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 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 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)
-
getSyncParameters
public org.json.JSONObject getSyncParameters()
Get the setting of KEYCLOAK_SYNC provider- Returns:
- JSON or null if no SYNC is defined
-
sync
public void sync(org.json.JSONObject params, org.json.JSONArray users, java.lang.String name, ObjectDB obj)
Import users from a Keycloak group/role- Parameters:
params
- Sync parametersname
- role or group nameobj
- optional caller object (to stop asynchronous action)
-
sync
public java.lang.String sync(ObjectDB obj)
Synchronize Keycloak users- Parameters:
obj
- Optional caller object- Returns:
- Message
-
-