উদাহরণ সহ Interceptor ব্যবহার

Spring Web Services এর মধ্যে Interceptor ব্যবহার - স্প্রিং ওয়েব সার্ভিসেস (Spring Web Services) - Java Technologies

272

Spring Web Services-এ Interceptor ব্যবহার একটি সাধারণ কৌশল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে HTTP বা SOAP বার্তাগুলির প্রক্রিয়াকরণে হস্তক্ষেপ করতে ব্যবহৃত হয়। Interceptor-গুলো সাধারণত লগিং, অথেনটিকেশন, অথরাইজেশন, অথবা বার্তা পরিবর্তন করতে ব্যবহৃত হয়।

নিচে Spring Web Services-এ Interceptor ব্যবহার করার একটি উদাহরণ দেওয়া হলো:

ধরি, আপনি একটি SOAP ওয়েব সার্ভিস ব্যবহার করছেন, এবং প্রতিটি অনুরোধের আগে একটি নির্দিষ্ট হেডার যাচাই করতে চান।

ধাপ ১: Maven নির্ভরতা যোগ করুন

আপনার pom.xml ফাইলে নিচের নির্ভরতাগুলো যোগ করুন:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web-services</artifactId>
    </dependency>
</dependencies>

ধাপ ২: Interceptor তৈরি করুন

একটি ক্লাস তৈরি করুন যা EndpointInterceptor ইন্টারফেস ইমপ্লিমেন্ট করে।

package com.example.interceptor;

import org.springframework.ws.context.MessageContext;
import org.springframework.ws.server.EndpointInterceptor;
import org.springframework.ws.soap.SoapHeader;
import org.springframework.ws.soap.SoapMessage;

import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;

public class CustomInterceptor implements EndpointInterceptor {

    @Override
    public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception {
        SoapMessage soapMessage = (SoapMessage) messageContext.getRequest();
        SoapHeader header = soapMessage.getSoapHeader();
        if (header == null) {
            throw new RuntimeException("Missing SOAP header");
        }

        // Example: Validate a specific header
        Source source = header.getSource();
        DOMSource domSource = (DOMSource) source;
        // Validate the header content as needed
        return true; // Continue the processing if validation passes
    }

    @Override
    public boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception {
        // Logic for response handling
        return true;
    }

    @Override
    public boolean handleFault(MessageContext messageContext, Object endpoint) throws Exception {
        // Logic for fault message handling
        return true;
    }

    @Override
    public void afterCompletion(MessageContext messageContext, Object endpoint, Exception ex) throws Exception {
        // Cleanup logic after completion
    }
}

ধাপ ৩: Interceptor Configurations

একটি কনফিগারেশন ক্লাস তৈরি করুন যেখানে Interceptor রেজিস্টার করবেন।

package com.example.config;

import com.example.interceptor.CustomInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.ws.config.annotation.EnableWs;
import org.springframework.ws.config.annotation.WsConfigurerAdapter;
import org.springframework.ws.server.EndpointInterceptor;

import java.util.List;

@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {

    @Override
    public void addInterceptors(List<EndpointInterceptor> interceptors) {
        interceptors.add(new CustomInterceptor());
    }
}

ধাপ ৪: SOAP ক্লায়েন্ট থেকে অনুরোধ পাঠানো

SOAP ক্লায়েন্ট থেকে বার্তা পাঠালে Interceptor প্রথমে হেডারটি যাচাই করবে।


আউটপুট

  1. যদি হেডারটি বৈধ হয়, অনুরোধটি প্রসেস করা হবে।
  2. যদি হেডারটি অনুপস্থিত বা অবৈধ হয়, Interceptor একটি ত্রুটি নিক্ষেপ করবে।

এই পদ্ধতিটি ব্যবহার করে আপনি Spring Web Services-এ Interceptor সহজেই যোগ করতে এবং ব্যবহার করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...