البرمجة

كيفية استخدام Feign Client بمصادقة Basic Authentication

للتعامل مع خدمة الويب المحمية بـ Basic Authentication عبر Feign Client في Java، يمكنك اتباع الخطوات التالية:

أولاً، يجب عليك إضافة معلومات المصادقة إلى رأس الطلب عند استخدام Feign Client. يمكن فعل ذلك عن طريق إضافة إعدادات خاصة إلى Feign Client الخاص بك.

قم بإنشاء فئة تنفيذية لـ Feign Client تمامًا كما فعلت في مثالك المذكور، ثم أضف تكوينًا إضافيًا لإضافة معلومات المصادقة إلى رأس الطلب.

هناك عدة طرق لفعل ذلك، يمكن استخدامها بناءً على الإصدار الذي تستخدمه من Feign. في حالتك، يبدو أنك تستخدم Spring Cloud Netflix Feign.

في هذه الحالة، يمكنك استخدام Interceptor لتعديل الطلبات الصادرة من Feign Client قبل إرسالها. يتم ذلك عن طريق تنفيذ واجهة RequestInterceptor وتجاوز الطريقة apply لإضافة رأس الطلب المطلوب.

إليك كيفية فعل ذلك:

java
import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class FeignClientConfiguration { @Bean public RequestInterceptor basicAuthRequestInterceptor() { return new RequestInterceptor() { @Override public void apply(RequestTemplate template) { // قم بتعيين معلومات المصادقة هنا String username = "admin"; String password = "admin"; // قم بإنشاء رأس المصادقة بناءً على اسم المستخدم وكلمة المرور String credentials = username + ":" + password; String base64Credentials = java.util.Base64.getEncoder().encodeToString(credentials.getBytes()); template.header("Authorization", "Basic " + base64Credentials); } }; } }

في هذا المثال، قمنا بإنشاء فئة تكوين (Configuration) لـ Spring ونوَّها باستخدام التعليمات البرمجية المعتادة في Spring Boot. ثم قمنا بتعريف حاجة الـ RequestInterceptor لإضافة معلومات المصادقة إلى رأس الطلب في كل طلب يتم إرساله عبر Feign Client.

لاحظ أنه يتم تشفير معلومات المصادقة باستخدام Base64 قبل إضافتها إلى رأس الطلب كما يتطلب ذلك بروتوكول Basic Authentication.

قم بتضمين هذا التكوين في تكوينات التطبيق الخاصة بك لتأكيد تطبيقها، مثل هذا:

java
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.Configuration; @Configuration @EnableFeignClients public class FeignClientAppConfig { // تكوينات إضافية إذا لزم الأمر }

وبهذا، يجب أن يتم إضافة معلومات المصادقة بشكل صحيح إلى رأس كل طلب يتم إرساله عبر Feign Client، مما يتيح لك الوصول إلى الخدمة المحمية بنجاح.

يرجى ملاحظة أنه يجب استبدال “admin” بمعلومات المصادقة الفعلية المستخدمة في تطبيقك.

المزيد من المعلومات

بالطبع، سأواصل إكمال المقال بمزيد من التفاصيل والشروحات.

عندما تقوم بتضمين فئة التكوين التي تحتوي على المعلومات المطلوبة للمصادقة في تطبيقك، يجب عليك أيضًا التأكد من تكوين Feign Client لاستخدام هذه الفئة. يمكنك القيام بذلك عبر تحديد القيمة المناسبة لخاصية configuration في تعريف Feign Client.

إليك كيفية تضمين القيمة المناسبة في تعريف Feign Client:

java
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @FeignClient(name = "API-GATEWAY", path = "/compute-service", fallback = ComputeServiceCircuitBreaker.class, configuration = FeignClientConfiguration.class) public interface ComputeServiceClient { @GetMapping("/add") public Integer add(@RequestParam("left") Integer left, @RequestParam("right") Integer right); }

في هذا التعريف، قمنا بتحديد فئة التكوين FeignClientConfiguration.class باعتبارها التكوين المطلوب لـ Feign Client الخاص بنا.

الآن، عندما يتم إرسال طلب من خلال Feign Client، ستتم إضافة معلومات المصادقة تلقائيًا إلى رأس الطلب، مما يسمح لك بالوصول إلى الخدمة المحمية بنجاح.

ومن المهم أيضًا التأكد من أن تكون المعلومات المستخدمة للمصادقة (اسم المستخدم وكلمة المرور) آمنة وخاصة. في مثالنا، قمنا بتضمين المعلومات مباشرة في فئة التكوين لأغراض التوضيح، ولكن في التطبيق الفعلي، يجب أن يتم تخزين هذه المعلومات بشكل آمن وإما استخدام تكوينات بيئية محلية أو استخدام أدوات إدارة المصادقة مثل Spring Security أو Vault.

باستخدام هذه الخطوات، يجب أن تكون قادرًا الآن على استخدام Feign Client للوصول إلى خدمة الويب المحمية بنجاح وبشكل آمن. إذا كان لديك أي أسئلة إضافية أو تحتاج إلى مزيد من المساعدة، فلا تتردد في طرحها.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر