Cara Mengirim Header Otentikasi Dasar di REST-terjamin

Saat Anda melakukan pengujian API, terkadang API atau titik akhir dilindungi. Ini berarti Anda perlu diautentikasi dan diotorisasi untuk melakukan tindakan tertentu.

Ada banyak cara untuk melindungi API, tetapi satu cara sederhana adalah dengan menggunakan Basic Autentikasi.

Dalam postingan ini, kita akan melihat cara mengirim Basic auth header di REST-terjamin.




Mengirim Header Autentikasi Dasar dalam REST-terjamin

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());
}

Dalam beberapa kasus, server mungkin menggunakan mekanisme tantangan-respons untuk menunjukkan kapan pengguna perlu mengautentikasi untuk mengakses sumber daya.

Secara default, REST-terjamin menunggu server untuk menantang sebelum mengirim kredensial dan perpustakaan menyediakan direktif preemptive yang dapat kita gunakan:


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