প্রসঙ্গ
আমার বর্তমান প্রকল্পে, জিও সার্ভারে (২.৩.০) আসার অনুরোধগুলি অনুমোদিত বলে প্রমাণীকরণের প্রয়োজনীয়তা আমার রয়েছে।
প্রকল্পটি এই তথ্যগুলি ধারণ করে:
- জিএস ক্লায়েন্ট মূল তথ্য (উদাহরণস্বরূপ পাসওয়ার্ড) সরবরাহ করতে পারে না, জিএসের নিজস্ব / ভূমিকা রেপোর সাথে কোনও সংযোগ নেই
সুতরাং এটি পরীক্ষা করার জন্য আমরা প্রমাণীকরণের ফিল্টার প্রক্রিয়াটি ব্যবহার করার সুযোগ নিয়েছি:
- একটি বৈধ অনুরোধ (একটি নির্দিষ্ট ডাব্লুএফএসের স্তরে) একটি বিশেষ এইচটিটিপি শিরোলেখ রয়েছে (আসুন X-CUSTOM-VALID বলি)
- এই শিরোনামটি একটি জেএসওএন এনকোডেড বার্তা যা যাচাই করার জন্য পর্যাপ্ত তথ্য সম্বলিত একটি বৈধ তৃতীয় সিস্টেমের সাথে যুক্ত একটি ক্লায়েন্টের দ্বারা অনুরোধ করা হয়েছিল (ইউজার নেম, একটি গোপন, এর মতো স্টাফ)
অবস্থা
ডকুমেন্টেশন আমাদের বলছেন যে আমরা তা করতে সক্ষম হওয়া উচিত ...
তবে এই জাতীয় উপাদানগুলি কীভাবে তৈরি করবেন এবং কীভাবে তাদের কনফিগার করা উচিত ডকুমেন্টেশন পরিষ্কার নয়।
জিও সার্ভার ডিবাগিং আমি এমন কোনও ফিল্টার কনফিগার করতে এটি সন্ধান করতে সক্ষম হয়েছি, এটির জন্য একটি উত্সর্গীকৃত প্রমাণীকরণ সরবরাহকারী প্রয়োজন। এটি, ওয়েব অ্যাডমিন ইন্টারফেসে একটি প্যানেল থাকার জন্য (প্রমাণীকরণের অধীনে, প্রমাণীকরণ ফিল্টারগুলির তালিকায়)
প্যানেল
এইভাবে আমার কোডটি সেই ফাইলগুলি নিয়ে গঠিত:
- ProducteurAuthFilterPanel.java
- ProducteurAuthFilterPanelInfo.java
- ProducteurAuthenticationFilterConfig.java
- ProducteurAuthenticationFilterPanel.html
এগুলির জন্য ওয়েব অ্যাডমিন ইন্টারফেসে একটি প্যানেল যুক্ত করা দরকার। ProducteurAuthFilterPanelInfo
এই দুই ProducteurAuthenticationFilter
-পরে (দ্য ফিল্টার ^^) সাথে দু'জনকে আঠালো করে তুলছে ।
ProducteurAuthenticationFilterConfig
ঘোষণা করে যে এর নির্মাতায়:
setClassName(ProducteurAnonymousAuthenticationProvider.class.getName());
setName("producteur");
ফিল্টার (এবং সরবরাহকারী)
এখন, ক্লাসগুলিকে একটি শৃঙ্খলে অন্তর্ভুক্ত করার জন্য একটি ফিল্টার তৈরি করার প্রয়োজন ছিল (আমার ধারণা):
- ProducteurAuthenticationFilter : ফিল্টার বাস্তবায়ন প্রসারিত
GeoServerSecurityFilter
এবং বাস্তবায়ন করেGeoServerAuthenticationFilter
- প্রোডাক্টিউর অজ্ঞাতনামা প্রমাণীকরণের সরবরাহকারী: নতুন ফিল্টারটি সংজ্ঞায়িত করার জন্য কোনও উপায়ে প্যানেলের প্রয়োজন (উপরে)
- ProducteurAuthenticationException: AuthenticationEntryPoint এ ব্যবহৃত (কেবলমাত্র এইচটিপি 403 ফরহিডেন্ট এন্ট্রিপয়েন্ট)
পরিশেষে, মটরশুটিগুলি এর মতো সংজ্ঞায়িত করা হয়:
<bean id="yaanonymousFilterProvider" class="dgarne.java.geoserver.security.ProducteurAnonymousAuthenticationProvider"/>
<bean id="producteurAuthPanelInfo" class="dgarne.java.geoserver.security.ProducteurAuthFilterPanelInfo">
<property name="id" value="security.producteurAuthFilter" />
<property name="shortTitleKey" value="ProducteurAuthFilterPanel.short"/>
<property name="titleKey" value="ProducteurAuthFilterPanel.title"/>
<property name="descriptionKey" value="ProducteurAuthFilterPanel.description"/>
</bean>
গেমের শেষে, ওয়েব অ্যাডমিন ইন্টারফেসে আমি ফিল্টার প্যানেলে একটি নতুন আইটেম পেয়েছি এবং আমি এটি ডিফল্ট ম্যাপিংয়ে ব্যবহার করেছি (রেফারেন্সের জন্য নীচের চিত্রটি দেখুন):
সমস্যার বিবরণ
আমরা এখানে...
আমার কোনও ডাব্লুএফএস অনুরোধ ক্লায়েন্ট (ওপেনলায়ার্স) দ্বারা জারি করা হয়নি যা ডিফল্ট ম্যাপিংয়ের সাথে মিলছে (/ **) সংজ্ঞায়িত ফিল্টারটি দিয়ে যাচ্ছে না। ডিবাগিংয়ের সময় আমি দেখতে পেলাম যে স্প্রিং কনটেক্সটে সংজ্ঞায়িত ফিল্টার চেইনগুলি কখনই আমার সংজ্ঞাটি অন্তর্ভুক্ত করে না, বরং সর্বদা ক্লাসিকালটি বেনামে, ডাইজেস্ট বা বেসিক ব্যবহার করে অন্তর্ভুক্ত থাকে ...
প্রশ্ন
তাহলে কি আমাকে কীভাবে এটি করতে হবে তার সম্পর্কে আরও একটি সম্পূর্ণ ডকুমেন্টেশন দিয়ে কেউ আমাকে নির্দেশ করতে সক্ষম?