
com.ef.keycloak.service.keycloakRest.KeycloakRestServiceImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ef-keycloak-adapter Show documentation
Show all versions of ef-keycloak-adapter Show documentation
This dependency contains the spring keycloak adapter for expert flow's CIM project
The newest version!
package com.ef.keycloak.service.keycloakRest;
import com.ef.keycloak.config.KeyCloakConfig;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
public class KeycloakRestServiceImpl implements KeycloakRestService {
private KeyCloakConfig keyCloakConfig;
public KeycloakRestServiceImpl(KeyCloakConfig keyCloakConfig){
this.keyCloakConfig = keyCloakConfig;
}
//Keycloak Authentication API
@Override
public ResponseEntity authenticateUser(String userName, String password){
System.out.println("--------- Configurations--------------");
System.out.println(keyCloakConfig.toString());
System.out.println("--------- Configurations--------------");
String requestURL = keyCloakConfig.getKeycloakAuthServerUrl() + "realms/" + keyCloakConfig.getRealm() + "/protocol/openid-connect/token";
MultiValueMap map = new LinkedMultiValueMap<>();
map.add("username",userName);
map.add("password",password);
map.add("client_id",keyCloakConfig.getClientId());
map.add("client_secret",keyCloakConfig.getClientSecret());
map.add("grant_type",keyCloakConfig.getGrantType());
System.out.println();
HttpEntity> request = new HttpEntity<>(map, new HttpHeaders());
RestTemplate restTemplate = new RestTemplate();
ResponseEntity response = restTemplate.exchange(requestURL,HttpMethod.POST, request, String.class);
return response;
}
//Create User Function
@Override
public ResponseEntity createUser(String accessToken){
String requestURL = keyCloakConfig.getKeycloakAuthServerUrl() + keyCloakConfig.getAdminUsername() +"/realms/" + keyCloakConfig.getRealm() + "/users";
JSONObject jsonObject = new JSONObject();
JSONObject credObject = new JSONObject();
ArrayList credArr = new ArrayList();
ArrayList userGroup = new ArrayList();
//User Credentials
credObject.put("type","password");
credObject.put("value","123456ABC");
credObject.put("temporary","false");
//Add Credentials Object to ArrayList
credArr.add(credObject);
//Adding the group to user
userGroup.add(keyCloakConfig.getUserGroup());
//User Data
jsonObject.put("username",keyCloakConfig.getUserName());
jsonObject.put("enabled","true");
jsonObject.put("credentials",credArr);
jsonObject.put("groups",userGroup);
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type","application/json");
headers.add("Authorization", "Bearer " + accessToken);
//Creating parameters for RestTemplate Request
HttpEntity entity = new HttpEntity(JSONValue.toJSONString(jsonObject), headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity response = restTemplate.exchange(requestURL, HttpMethod.POST, entity, String.class);
return response;
}
@Override
public void getUsersByRole(List roles) {
return;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy