Basic Authentication কনফিগারেশন

Java Technologies - অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) - HTTP Authentication
327

Basic Authentication হল HTTP প্রোটোকলের একটি সাধারণ অথেনটিকেশন স্কিমা যেখানে ইউজারের নাম এবং পাসওয়ার্ড ক্লায়েন্ট থেকে সার্ভারে পাঠানো হয়, সাধারণত একটি HTTP হেডারে। Apache HTTP Client-এ Basic Authentication কনফিগারেশন করতে হলে আপনাকে CredentialsProvider এবং BasicAuth ব্যবহার করতে হবে।

Maven Dependency:

প্রথমে, যদি আপনার প্রোজেক্টে Maven ব্যবহৃত হয়, তবে আপনাকে Apache HTTP Client-এর জন্য ডিপেনডেন্সি যুক্ত করতে হবে:

<dependency>
    <groupId>org.apache.httpcomponents.client5</groupId>
    <artifactId>httpclient5</artifactId>
    <version>5.4</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents.core5</groupId>
    <artifactId>httpcore5</artifactId>
    <version>5.4</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents.httpclient5</groupId>
    <artifactId>httpclient5</artifactId>
    <version>5.4</version>
</dependency>

Basic Authentication কনফিগারেশন:

Apache HTTP Client-এ Basic Authentication কনফিগার করতে, আপনাকে CredentialsProvider এবং BasicCredentials ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি HTTP GET রিকোয়েস্ট Basic Authentication দিয়ে পাঠানো হচ্ছে।

উদাহরণ: Basic Authentication কনফিগারেশন

import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.core5.auth.AuthScope;
import org.apache.hc.core5.auth.BasicCredentialsProvider;
import org.apache.hc.core5.auth.UsernamePasswordCredentials;
import org.apache.http.impl.client.RequestConfig;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class HttpClientWithBasicAuth {
    public static void main(String[] args) {
        // CredentialsProvider সেটআপ
        BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
                new AuthScope("your-api-endpoint.com", 80),  // API হোস্ট এবং পোর্ট
                new UsernamePasswordCredentials("username", "password")  // ইউজারনেম এবং পাসওয়ার্ড
        );

        // HTTP ক্লায়েন্ট কনফিগারেশন তৈরি
        try (CloseableHttpClient httpClient = HttpClients.custom()
                .setDefaultCredentialsProvider(credsProvider)  // CredentialsProvider সেট করা
                .build()) {

            // HTTP GET রিকোয়েস্ট তৈরি
            HttpGet request = new HttpGet("https://your-api-endpoint.com/resource");

            // রিকোয়েস্ট পাঠানো এবং রেসপন্স প্রাপ্তি
            try (CloseableHttpResponse response = httpClient.execute(request)) {
                String responseBody = EntityUtils.toString(response.getEntity());
                System.out.println("Response: " + responseBody);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  1. CredentialsProvider: BasicCredentialsProvider ব্যবহার করে ইউজারনেম এবং পাসওয়ার্ড নির্ধারণ করা হয়। এখানে AuthScope ব্যবহার করে API এর হোস্ট এবং পোর্টও উল্লেখ করা হয়।
  2. UsernamePasswordCredentials: এটি ইউজারনেম এবং পাসওয়ার্ডকে CredentialsProvider-এ সংযুক্ত করতে ব্যবহৃত হয়।
  3. HttpClients.custom(): HttpClients.custom() ব্যবহার করে HTTP ক্লায়েন্ট কনফিগার করা হয় এবং এতে setDefaultCredentialsProvider() ব্যবহার করে কনফিগারেশন যোগ করা হয়।
  4. HttpGet: এখানে একটি GET রিকোয়েস্ট তৈরি করা হয়েছে এবং execute() মেথড দিয়ে রিকোয়েস্টটি পাঠানো হয়েছে।

HTTP Header-এ Basic Authentication:

Apache HTTP Client Basic Authentication চালানোর সময়, এটি স্বয়ংক্রিয়ভাবে Authorization হেডারে ইউজারনেম এবং পাসওয়ার্ড সংযুক্ত করে। উদাহরণস্বরূপ, HTTP হেডারে যা পাঠানো হয় তা এরকম দেখতে হতে পারে:

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

এখানে dXNlcm5hbWU6cGFzc3dvcmQ= হল base64 এ এনকোড করা username:password

সারাংশ:

Apache HTTP Client-এ Basic Authentication কনফিগার করতে CredentialsProvider এবং UsernamePasswordCredentials ব্যবহার করা হয়। এটি HttpClients.custom() ব্যবহার করে ক্লায়েন্ট কনফিগার করে এবং Authorization হেডার হিসেবে ইউজারনেম এবং পাসওয়ার্ড পাঠায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...