Мне не удается избежать страницы входа в Keycloak / Невозможно программно аутентифицировать Keycloak
Я попытался получить токен доступа и обновить токен, а затем передать токен доступа, чтобы получить основные данные, как показано ниже, но не смогпройти мимо страницы входа в систему keycloak /
код Springboot
@GetMapping("/authenticatekeyclok")
public HttpEntity keyclock()
{
String res=""; HttpEntity<String> response=null;
System.out.println("enter into keycloak====");
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("Accept", "application/json");
String url = "http://10.209.22.23:8080/auth/realms/master/protocol/openid-connect/token";
String dataJSON = "grant_type=password&username=admin&password=admin&client_id=security-admin-console&client_secret=135c0e89-c5f5-4499-a64e-c5219f59f31d";
HttpEntity formEntity = new HttpEntity<>(dataJSON, headers);
System.out.println("print headers===="+formEntity.getBody());
//Trying to get tokens
response = restTemplate.exchange("http://10.209.22.23:8080/auth/realms/master/protocol/openid-connect/token", HttpMethod.POST, formEntity, String.class);
System.out.println("response generated============= ");
System.out.println("O/P : for first api"+response.getBody());
StringTokenizer st= new StringTokenizer(response.getBody(),",");
StringTokenizer st1;
String s="";
String refreshtoken=null;
while(st.hasMoreTokens()) {
s=st.nextToken();
if(s.contains("refresh_token")) {
st1=new StringTokenizer(s,":");
while(st1.hasMoreTokens()) {
refreshtoken=st1.nextToken();
refreshtoken= refreshtoken.substring(1,refreshtoken.length()-1);
System.out.println(refreshtoken);
}
}
}
dataJSON = "grant_type=refresh_token&client_id=security-admin-console&client_secret=135c0e89-c5f5-4499-a64e-c5219f59f31d&redirect_uri=http://10.209.22.23:5555/auth/admin/master/console/#/realms/master&refresh_token="+refreshtoken;
HttpEntity entity1 = new HttpEntity<>(dataJSON, headers);
response = restTemplate.exchange(url, HttpMethod.POST, entity1, String.class);
System.out.println("O/P for 2nd ====================== : "+response.getBody());
st= new StringTokenizer(response.getBody(),",");
s="";
String accesstoken=null;
while(st.hasMoreTokens()) {
s=st.nextToken();
if(s.contains("access_token")) {
st1=new StringTokenizer(s,":");
while(st1.hasMoreTokens()) {
accesstoken=st1.nextToken();
accesstoken= accesstoken.substring(1,accesstoken.length()-1);
System.out.println(accesstoken);
}
}
}
dataJSON=""; //ResponseEntity<String> respo = null;
HttpHeaders headers1 = new HttpHeaders();
headers1.setContentType(MediaType.APPLICATION_JSON);
headers1.set("Authorization", "Bearer "+accesstoken);
HttpEntity entity = new HttpEntity<String>(headers1);
//Pass the access token and trying to go to admin console of keycloak
response = restTemplate.exchange("http://10.209.22.23:8080/auth/admin/master/console", HttpMethod.GET, entity, String.class);
System.out.println("O/P for third======================: "+response.getBody());
return response;
}