Các phương thức Authentication trong REST Assured

Các phương thức Authentication trong REST Assured

Tags
Rest-Assured
API Testing
Swagger
Published
January 15, 2024
Author
 

Basic Authentication

Basic Authentication được coi là phương pháp authentication đơn giản nhất cho một website.
  1. Người gửi (sender) sẽ gửi username, password của mình.
  1. Trình duyệt sẽ tiến hành mã hóa (encode) username/password thành một chuỗi base64 theo quy tắc username:password, và gửi lên server thông qua HTTP header Authorization.
 
Trong REST Assured:
//Encode Credentials
String credentials = "lamthunguyen" +":" + "LeAcademy@123";
 
byte[] encodeCredentials = Base64.encodeBase64(credentials.getBytes());
 
String encodeCredentialsString = new String (encodeCredentials);
 
//Set Authorization Header
 
request.header("Authorization","Basic "+ encodeCredentialsString);
 
String payload = "{\n" + " \"userId\": \"15f43fc7-eaab-498b-bd96-bfe1186fad6b\",\n" + " \"collectionOfIsbns\": [\n" + " {\n" + " \"isbn\": \"9781449331818\"\n" + " }\n" + " ]\n" + "}";
 
request.header("Content-Type","application/json");
 
Response res = request.body(payload).post("/BookStore/v1/Books");
 
You're not simply converting a string to bytes and then back.
In fact, you start with a regular string and end up with a base64 encoded string.
The code is actually needed because it converts your original auth string into a format that the HTTP server expects.
 
Server sẽ kiểm tra và giải mã Authorization trong HTTP header. Nếu hợp lệ, server sẽ trả về thông tin website, nếu không hợp lệ, server sẽ trả về một popup yêu cầu bạn nhập lại username/password.
 
Authorization: Basic bG9sOnNlY3VyZQ==
 
Trong REST Assured:
 
request.header("Authorization", "Basic " + "bG9sOnNlY3VyZQ==" );

Base64 encoding là gì?

Mã hóa được sử dụng trong xác thực vì không muốn dữ liệu của chúng ta được truyền trực tiếp qua mạng.

Bearer Authentication (Token Authentication)

Bearer token là một chuỗi string được mã hóa, được sinh ra bởi server trong response để thực hiện request login.
 
Cách thức thực hiện với bearer authentication có thể như sau:
 
Khi user gửi request đến server để lấy một token bằng username, password, server sẽ trả về một chuỗi access token.
 
Access token này chính là bearer token mà client cần phải gửi vào header nếu muốn thực hiện các request khác để server xác thực user đó là đúng.
 
Authorization: Bearer <token>
 
Trong REST Assured:
request.header("Authorization", "Bearer " + "3076|LxPxtO0zBkkN89heWEsT4nNGLOVjvxNQimP6sgXX3563bf8f" );

References