Τρόπος αποστολής κεφαλίδας βασικού ελέγχου ταυτότητας με εγγύηση REST

Όταν κάνετε δοκιμές API, μερικές φορές προστατεύονται τα API ή τα τελικά σημεία. Αυτό σημαίνει ότι πρέπει να γίνει έλεγχος ταυτότητας και εξουσιοδότηση για εκτέλεση συγκεκριμένων ενεργειών.

Υπάρχουν πολλοί τρόποι για την προστασία των API, αλλά ένας απλός τρόπος είναι να χρησιμοποιήσετε το Basic Αυθεντικοποίηση.

Σε αυτήν την ανάρτηση, θα δούμε πώς να στείλουμε το Basic επικεφαλίδα auth στο REST-εξασφαλισμένο.




Αποστολή κεφαλίδας βασικού ελέγχου ταυτότητας με εγγύηση REST

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

Σε ορισμένες περιπτώσεις, ένας διακομιστής μπορεί να χρησιμοποιήσει έναν μηχανισμό απόκρισης πρόκλησης για να υποδείξει πότε ο χρήστης πρέπει να κάνει έλεγχο ταυτότητας για πρόσβαση στον πόρο.

Από προεπιλογή, το REST -ured περιμένει τον διακομιστή να προκαλέσει προτού στείλει τα διαπιστευτήρια και έτσι η βιβλιοθήκη παρέχει την προληπτική οδηγία που μπορούμε να χρησιμοποιήσουμε:


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