জিও সার্ভার ২.৩.০ এ কাস্টম প্রমাণীকরণ ফিল্টার তৈরি করুন


10

প্রসঙ্গ

আমার বর্তমান প্রকল্পে, জিও সার্ভারে (২.৩.০) আসার অনুরোধগুলি অনুমোদিত বলে প্রমাণীকরণের প্রয়োজনীয়তা আমার রয়েছে।

প্রকল্পটি এই তথ্যগুলি ধারণ করে:

  • জিএস ক্লায়েন্ট মূল তথ্য (উদাহরণস্বরূপ পাসওয়ার্ড) সরবরাহ করতে পারে না, জিএসের নিজস্ব / ভূমিকা রেপোর সাথে কোনও সংযোগ নেই

সুতরাং এটি পরীক্ষা করার জন্য আমরা প্রমাণীকরণের ফিল্টার প্রক্রিয়াটি ব্যবহার করার সুযোগ নিয়েছি:

  • একটি বৈধ অনুরোধ (একটি নির্দিষ্ট ডাব্লুএফএসের স্তরে) একটি বিশেষ এইচটিটিপি শিরোলেখ রয়েছে (আসুন 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>

গেমের শেষে, ওয়েব অ্যাডমিন ইন্টারফেসে আমি ফিল্টার প্যানেলে একটি নতুন আইটেম পেয়েছি এবং আমি এটি ডিফল্ট ম্যাপিংয়ে ব্যবহার করেছি (রেফারেন্সের জন্য নীচের চিত্রটি দেখুন): এখানে চিত্র বর্ণনা লিখুন

সমস্যার বিবরণ

আমরা এখানে...

আমার কোনও ডাব্লুএফএস অনুরোধ ক্লায়েন্ট (ওপেনলায়ার্স) দ্বারা জারি করা হয়নি যা ডিফল্ট ম্যাপিংয়ের সাথে মিলছে (/ **) সংজ্ঞায়িত ফিল্টারটি দিয়ে যাচ্ছে না। ডিবাগিংয়ের সময় আমি দেখতে পেলাম যে স্প্রিং কনটেক্সটে সংজ্ঞায়িত ফিল্টার চেইনগুলি কখনই আমার সংজ্ঞাটি অন্তর্ভুক্ত করে না, বরং সর্বদা ক্লাসিকালটি বেনামে, ডাইজেস্ট বা বেসিক ব্যবহার করে অন্তর্ভুক্ত থাকে ...

প্রশ্ন

তাহলে কি আমাকে কীভাবে এটি করতে হবে তার সম্পর্কে আরও একটি সম্পূর্ণ ডকুমেন্টেশন দিয়ে কেউ আমাকে নির্দেশ করতে সক্ষম?

উত্তর:


1

আমি মত একটি প্রক্সি প্রয়োগ করে এটা করতে এই স্তর যে আহবান করা হয় জন্য URL চেক করুন এবং যদি ব্যবহারকারী অ্যাক্সেস অস্বীকার: যে যেমন অধিবেশন ভেরিয়েবল ব্যবহার করে লগ যাচাই পারে ব্যবহারকারীদের পরিচয়পত্র এবং শুধুমাত্র এক্সেস সম্পদ তারা প্রাপ্ত করার উদ্দেশ্যে এনটাইটেল করা হয়, অর্থাত তাদের অনুমতি এগুলি দেখার অনুমোদিত নয়।

আপনি যদি কোনও নির্দিষ্ট অঞ্চল বা বৈশিষ্ট্য সেটগুলিতে ব্যবহারকারীদের সীমাবদ্ধ রাখতে চান তবে দুটি উপায় আছে ..

  1. ব্যবহারকারী কী ডেটা দেখতে পাবে তা নিয়ন্ত্রণ করতে প্যারামিটারাইজড এসকিউএল ভিউগুলি ব্যবহার করুন । আপনি যে প্রকৃতির সাথে নির্দিষ্ট পরামিতিগুলির সাথে জিওসরবারে পাস করার আগে ইউআরএলটি পরিবর্তন করতে আপনি প্রক্সি ব্যবহার করতে পারেন। আপনি ব্যবহারকারীকে সত্যায়িত হওয়ার পরে ওপেনলায়ারগুলিতে ডাব্লুএমএস getMAP কলের অংশ হিসাবে প্যারামিটারগুলি সরবরাহ করার পরে আপনি একটি অ্যাজাক্স কলের মাধ্যমে ওপেনলেয়ারগুলিতে প্যারামিটারগুলি ফেরত পাঠাতে পারেন। প্রদর্শিত প্রকৃত ডেটা এসএলডিতে পরিবর্তিত বিকল্প দ্বারা পরিচালিত ডেটা ফিল্টার করতে বা আপনার ডাব্লুএমএস গেটম্যাপ ম্যাপ কলগুলিতে এক্সটার্নাল স্টাইল ব্যবহার করে কোনও ব্যবহারকারী প্রদত্ত স্তর প্রদর্শন করতে ব্যবহার করে যে এসএলডি ব্যবহার করে সেগুলি পরিবর্তন করতে পারে।

  2. কেবলমাত্র নির্দিষ্ট ক্ষেত্রের আশেপাশে ব্যবহারকারীকে চলাফেরা করতে ম্যাপ এক্সটেন্টস নির্দিষ্ট করতে ব্যবহারকারী প্রমাণীকরণের পরে একটি অ্যাজাক্স কল ব্যবহার করুন । আপনি কীভাবে ডেটা প্রদর্শিত হতে পারে তা সীমাবদ্ধ করতে লেয়ারভিজিবিলিটি ()ও ব্যবহার করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.