Commit 6420bff1 authored by Noel Alonso's avatar Noel Alonso
Browse files

Elimina la obtención de CSRF-Token

Se configura en superset la excepción del token para obtener el
guestToken. No necesario por estar bajo token jwt
parent ddc2a618
Loading
Loading
Loading
Loading
+1 −38
Original line number Diff line number Diff line
package es.redmic.user.embedded.service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@@ -8,14 +7,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import es.redmic.user.manager.service.UserProfileService;

/*-
@@ -63,8 +58,6 @@ public class SupersetEmbeddedService {

		String username = userProfileService.getUsername();

		String csrfToken = getCSRFToken(jwtToken);

		RestTemplate restTemplate = new RestTemplate();

		String body = "{\"resources\": [{\"id\": \"" + dashboardid + "\", \"type\": \"dashboard\"}], \"rls\": [], \"user\": {\"username\": \"" + username + "\"}}";
@@ -72,7 +65,6 @@ public class SupersetEmbeddedService {
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_JSON);
		headers.setAccept(acceptableMediaTypes);
		headers.set("X-CSRFToken", csrfToken);
		headers.set(HttpHeaders.REFERER, supersetApiUrl);
		headers.set(HttpHeaders.AUTHORIZATION, "Bearer " + jwtToken);
		HttpEntity<String> request = new HttpEntity<>(body, headers);
@@ -83,39 +75,10 @@ public class SupersetEmbeddedService {
			response = restTemplate.postForObject(url, request, String.class);
		} catch (org.springframework.web.client.HttpClientErrorException e) {
			// Error 4xx
			e.printStackTrace();
			System.err.println("Response Body: " + e.getResponseBodyAsString());
			throw new RuntimeException("Client error when requesting guest token: " + e.getStatusCode(), e);
		}

		return response;
	}

	private String getCSRFToken(String jwtToken) {

		String url = supersetApiUrl + supersetApiBasePath + "csrf_token/";

		RestTemplate restTemplate = new RestTemplate();

		HttpHeaders headers = new HttpHeaders();
		headers.setAccept(acceptableMediaTypes);
		headers.set(HttpHeaders.AUTHORIZATION, "Bearer " + jwtToken);
		HttpEntity<String> request = new HttpEntity<>(headers);

		String response;

		try {
			response = restTemplate.exchange(url, HttpMethod.GET, request, String.class).getBody();
		} catch (org.springframework.web.client.HttpClientErrorException e) {
			// Error 4xx
			e.printStackTrace();
			throw new RuntimeException("Client error when requesting CSRF token: " + e.getStatusCode(), e);
		}
		try {
			ObjectMapper mapper = new ObjectMapper();
			JsonNode root = mapper.readTree(response);
			return root.path("result").asText();
		} catch (IOException e) {
			throw new RuntimeException("Error parsing CSRF token response", e);
		}
	}
}