Kiel Sendi Bazan Aŭtentikan Kapon en REST-certigita

Kiam vi faras API-testadon, kelkfoje la API aŭ finpunktoj estas protektitaj. Ĉi tio signifas, ke vi devas esti aŭtentikigita kaj rajtigita plenumi iujn agojn.

Estas multaj manieroj protekti APIojn, sed unu simpla maniero estas uzi la Basic Aŭtentikigo.

En ĉi tiu afiŝo, ni rigardos kiel sendi la Basic auth-titolo en REST-certigita.




Sendante Bazan Auth Header en REST-certigita

import io.restassured.RestAssured; import io.restassured.http.ContentType; import io.restassured.response.Response; import org.junit.Before; import org.junit.jupiter.api.*; import static io.restassured.RestAssured.given; public class UserScenarios {
private String path;
private String validRequest = '{ ' +

' 'username': 'some-user', ' +

' 'email': 'some-user@email.com', ' +

' 'password': 'Passw0rd123!' }';
@Before
public void setup() {
RestAssured.baseURI = 'http://localhost:8080';
path = '/users';
}
@Test
public void createUser() {
Response response = given()


.auth()


.preemptive()


.basic('required_username', 'required_password')


.header('Accept', ContentType.JSON.getAcceptHeader())


.contentType(ContentType.JSON)


.body(validRequest)


.post(path)


.then().extract().response();

Assertions.assertEquals(201, response.getStatusCode());
}

En iuj kazoj, servilo povus uzi defian-respondan mekanismon por indiki kiam la uzanto bezonas aŭtentikigi por aliri la rimedon.

Defaŭlte, REST-certigita atendas la defion de la servilo antaŭ ol sendi la atestilojn kaj do la biblioteko provizas la preventan direktivon, kiun ni povas uzi:


given()
.auth()
.preemptive()
.basic('required_username', 'required_password')