Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.keycloak.OAuth2Constants;
- import org.keycloak.admin.client.*;
- import org.keycloak.admin.client.resource.ClientsResource;
- import org.keycloak.admin.client.resource.RealmResource;
- import org.keycloak.representations.idm.ClientRepresentation;
- import org.keycloak.representations.idm.RoleRepresentation;
- import org.keycloak.representations.idm.UserRepresentation;
- import org.keycloak.representations.idm.authorization.ResourceRepresentation;
- import org.keycloak.representations.idm.authorization.ResourceServerRepresentation;
- import java.util.List;
- import java.util.stream.Collectors;
- public class ClientRegistration {
- private String KEYCLOAK_SERVER_URL;
- private String ADMIN_CLIENT_ID;
- private String ADMIN_CLIENT_SECRID;
- private String REALMTOCREATESERVICE;
- private Keycloak keycloak;
- private RealmResource currentRealm;
- private ClientsResource clientManager;
- private UserRepresentation newclinetServiceUserRepresentation;
- private ClientRepresentation newClientService;
- public ClientRegistration(String KEYCLOAK_SERVER_URL, String ADMIN_CLIENT_ID, String ADMIN_CLIENT_SECRID, String REALMTOCREATESERVICE) {
- this.KEYCLOAK_SERVER_URL = KEYCLOAK_SERVER_URL;
- this.ADMIN_CLIENT_ID = ADMIN_CLIENT_ID;
- this.ADMIN_CLIENT_SECRID = ADMIN_CLIENT_SECRID;
- this.REALMTOCREATESERVICE = REALMTOCREATESERVICE;
- this.currentRealm = getKeycloak().realm(REALMTOCREATESERVICE);
- this.clientManager = currentRealm.clients();
- ResourceServerRepresentation a = new ResourceServerRepresentation();
- ResourceRepresentation c = new ResourceRepresentation();
- }
- public void ClinetRegistration(String clientID) {
- newClientService = buildServiceRepresentation(clientID);
- getClientManager().create(newClientService);
- newClientService = clientManager.findByClientId(newClientService.getClientId()).get(0);
- newclinetServiceUserRepresentation = clientManager.get(newClientService.getId()).getServiceAccountUser();
- }
- public String getClinetSecred() {
- return getClientManager().get(getNewClientService().getId()).getSecret().getValue();
- }
- public void addRealmRole(String nameRole) {
- List<RoleRepresentation> role = getAvaibleRealmRole().stream().filter(e -> e.getName().equals(nameRole)).collect(Collectors.toList());
- if (role.isEmpty()) {
- throw new RuntimeException("The role does not exist or the clinet does not have the right to add it");
- }
- currentRealm.users().get(getNewclinetServiceUserRepresentation().getId()).roles().realmLevel().add(role);
- }
- public void addClintmRole(String nameRole, String clinetUUID) {
- List<RoleRepresentation> role = getAvaibleClientsmRole(clinetUUID).stream().filter(e -> e.getName().equals(nameRole)).collect(Collectors.toList());
- if (role.isEmpty()) {
- throw new RuntimeException("The role does not exist or the clinet does not have the right to add it");
- }
- currentRealm.users().get(getNewclinetServiceUserRepresentation().getId()).roles().clientLevel(clinetUUID).add(role);
- }
- public List<RoleRepresentation> getAvaibleRealmRole() {
- return currentRealm.users().get(getNewclinetServiceUserRepresentation().getId()).roles().
- realmLevel().listAvailable();
- }
- public List<RoleRepresentation> getAvaibleClientsmRole(String clientUUID) {
- return currentRealm.users().get(getNewclinetServiceUserRepresentation().getId()).roles().
- clientLevel(clientUUID).listAvailable();
- }
- private void buildInstance() {
- keycloak = KeycloakBuilder.builder()
- .serverUrl(KEYCLOAK_SERVER_URL)
- .realm("master")
- .grantType(OAuth2Constants.CLIENT_CREDENTIALS)
- .clientId(ADMIN_CLIENT_ID)
- .clientSecret(ADMIN_CLIENT_SECRID)
- .build();
- }
- private ClientRepresentation buildServiceRepresentation(String clientID) {
- ClientRepresentation newClient = new ClientRepresentation();
- newClient.setClientId(clientID);
- newClient.setServiceAccountsEnabled(true);
- return newClient;
- }
- public void disconet() {
- keycloak.close();
- }
- public String getKeycloakServerTime() {
- return keycloak.serverInfo().getInfo().getSystemInfo().getServerTime();
- }
- public Keycloak getKeycloak() {
- if (keycloak == null) {
- buildInstance();
- }
- return keycloak;
- }
- public ClientRepresentation getNewClientService() {
- return newClientService;
- }
- public UserRepresentation getNewclinetServiceUserRepresentation() {
- if (newclinetServiceUserRepresentation == null) {
- throw new RuntimeException("Client not registered yet, use this function 'ClinetRegistration'");
- }
- return newclinetServiceUserRepresentation;
- }
- public ClientsResource getClientManager() {
- return clientManager;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement