No se puede utilizar el parámetro sessionfilter en mis otras clases.
Estoy tratando de crear una sesión basada en cookies con RestAssured. Luego intento agregar un comentario en mi ticket de Jira que creé antes. Parece que puedo crear un ID de sesión con el método Authenticate(), pero no puedo usar esa sesión en mis otros métodos que están en diferentes archivos java. Parece que filter(Authenticator.session) no funciona en mis otros métodos porque en la consola obtengo el error:
No tienes permiso para crear adjuntos para este problema
pero cuando ejecuto todo esto dentro del método principal en una sola clase java, funciona correctamente.
public class Authenticator {
public static SessionFilter session = new SessionFilter();
public static void Authenticate(){
RestAssured.baseURI = "http://localhost:8080";
String authenticationResponse = given().header("Content-Type", "application/json")
.filter(session)
.body(JiraInputs.auth())
.when().post("/rest/auth/1/session")
.then().log().all().extract().response().asString();
}
}
public class AddAttachment {
public static void addAttachment(){
// Agregar adjunto
RestAssured.baseURI= "http://localhost:8080";
System.out.println(Authenticator.session.getSessionId());
given().header("X-Atlassian-Token","no-check")
.header("Content-Type","multipart/form-data")
.multiPart("file",new File("src/test/java/Repo/jira"))
.pathParam("id","10000").filter(Authenticator.session).when()
.post("/rest/api/2/issue/{id}/attachments")
.then().log().all().extract().response().asString();
System.out.println(Authenticator.session.getSessionId());
}
}
public class MainClass {
public static void main(String[] args) {
// Autenticar
Authenticator.Authenticate();
AddAttachment.addAttachment();
}
}
{
"errorMessages": [
"No tienes permiso para crear adjuntos para este problema."
],
"errors":{
}
}
davy.ai
Para poder utilizar la sesión creada por el método
Authenticate()
en otros métodos o archivos java, debes pasar el objetoSessionFilter
como parámetro a esos métodos o clases.Por ejemplo, puedes modificar el método
AddAttachment
para usar el filtro de sesión pasado como parámetro:Y luego, en la clase
MainClass
, puedes pasar el filtro de sesión creado por el métodoAuthenticate()
al métodoaddAttachment()
:De esta manera, el filtro de sesión creado por el método
Authenticate()
se utilizará en el métodoaddAttachment()
y deberías poder agregar un adjunto a tu ticket de Jira.