نحوه ارسال عنوان اصلی تأیید اعتبار با اطمینان REST

هنگامی که شما در حال انجام آزمایش API هستید ، گاهی اوقات از API ها یا نقاط پایانی محافظت می شود. این بدان معناست که برای انجام اقدامات خاصی باید احراز هویت و مجوز شوید.

روش های زیادی برای محافظت از API ها وجود دارد ، اما یک راه ساده استفاده از Basic است احراز هویت.

در این پست ، نحوه ارسال Basic را بررسی خواهیم کرد عنوان خودکار در REST-assured.




ارسال عنوان اصلی Auth در 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-assured منتظر است سرور قبل از ارسال اعتبارنامه به چالش بکشد و بنابراین کتابخانه دستورالعمل پیشگیرانه ای را ارائه می دهد که می توانیم از آن استفاده کنیم:


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