Se crea una autenticacion en el header para limitar el acceso a gethash
This commit is contained in:
		| @ -4,10 +4,17 @@ defmodule ApiWeb.GetHash do | ||||
|   import Ecto.Query | ||||
|   require Logger | ||||
|  | ||||
|   @valid_token "XHg0NWNhN2I3MTljNTRlOGU4NTAwOTljMDYwNTgxNDBmNzc5MTgxMzM3NmJmZTMwOGJjMGM4N2VkMzYwODUwMDFl" | ||||
|  | ||||
|   def index(conn, %{"study" => accessionnumber}) do | ||||
|     Envar.load(".env") | ||||
|     Envar.require_env_file(".env") | ||||
|  | ||||
|     if not valid_token?(conn) do | ||||
|       conn | ||||
|       |> put_status(:unauthorized) | ||||
|       |> json(%{error: "Token inválido o ausente"}) | ||||
|     else | ||||
|       Logger.info("Accession get hash -> #{accessionnumber}") | ||||
|  | ||||
|       studyidentifier = Envar.get("IDENTIFIERFIELD") || "IDSTUDY" | ||||
| @ -53,6 +60,7 @@ defmodule ApiWeb.GetHash do | ||||
|           |> json(%{hash: token}) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
|  | ||||
|   def generate_token(json) do | ||||
|     json_string = Jason.encode!(json) | ||||
| @ -63,4 +71,12 @@ defmodule ApiWeb.GetHash do | ||||
|     token | ||||
|   end | ||||
|  | ||||
|  defp valid_token?(conn) do | ||||
|     case get_req_header(conn, "authorization") do | ||||
|       ["Bearer " <> token] -> token == @valid_token | ||||
|       _ -> false | ||||
|     end | ||||
|   end | ||||
|  | ||||
|  | ||||
| end | ||||
|  | ||||
		Reference in New Issue
	
	Block a user