تقدم هذه المقالة مثالًا على دمج SPRING BOOT CANES لتنفيذ التحقق من تسجيل الدخول المفرد. يتم مشاركته معك ويترك أيضًا ملاحظة لنفسك. التفاصيل كما يلي:
يعد تسجيل الدخول الفردي (SSO for Short) أحد أكثر الحلول شعبية لتكامل أعمال المؤسسات. يسمح SSO للمستخدمين بالوصول إلى جميع أنظمة التطبيق الموثوقة بشكل متبادل في أنظمة تطبيق متعددة مرة واحدة فقط.
عميل CAS
مسؤول عن التعامل مع طلبات الوصول إلى الموارد المحمية العميل. عندما يكون من الضروري مصادقة الطرف طلب ، فإنه يعيد التوجيه إلى خادم CAS للمصادقة. (من حيث المبدأ ، لم تعد تطبيقات العميل تقبل أي اسم مستخدم وكلمة مرور ، إلخ).
طريقة التنفيذ الأولى: استخدم بداية طرف ثالث
1. تعتمد على جرة
<Rependency> <roupeD> net.unicon.cas </rougiD> <StifactId> cas-client-autoconfig-support </stifactid> <sored> 1.4.0-Ga </splement> </dependency>
2. إضافة ملفات التكوين
cas.server-url-prefix = http: //127.0.0.1 cas.server-login-url = http: //127.0.0.1/login cas.client-host-url = http: //192.26.4.28: 8080 cas.validation-type =
3. قم بتشغيل دعم عميل CAS
springbootapplication @componentscan (basePackages = {"com.chhliu.emailservice"}) enableCasClient // تمكين دعم cas support public application springbootservletializer }}من خلال الخطوات الثلاث المذكورة أعلاه ، يمكنك إكمال مصادقة عميل CAS!
4. توسيع
يدعم Cas.validation-type حاليًا 3 طرق: 1. CAS ؛ 2. CAS3 ؛ 3. سام
التكوينات الأخرى المتاحة هي كما يلي:
cas.authentication-url-patterns cas.validation-url-patterns cas.request-wrapper-url-patterns cas.accept- أي proxy server.context-parameters.renew
يمكن رؤية المعنى المحدد بوضوح من الاسم.
طريقة التنفيذ 2: التكوين اليدوي
استخدمنا عميل CAS وكانت بحاجة لتكوين ما يلي في web.xml:
<Ivilter> <ilter-name> antainticationfilter </filter-name> <ilter-class> org.jasig.cas.client.authentication.AuthenticationFilter </filter-class> <Ing-param> <param-name> casserverloginurl </param-name> <Param-value> http://127.0.0.1/login </param-value> </ith-param> <Ing-param> <Param-name> serverName </param-name> <Param-value> http://192.26.4.28:808080 </param-val> </init-ming <Filter-Name> AuthenticationFilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-هذا الفلتر مسؤول عن التحقق من التذكرة ، ويجب تمكينه-> <filter> <filter-name> ValteridationFilter </filter-name> <ilter-class> org.jasig.cas.client.validation.cas20proxyive ticketValidationFilter </filter-class> <Ing-param> <Param-name> casserverurlprefix </parm-name> <Param-name> serverName </param-name> <Param-value> http://192.26.4.28:8080 </param-value> </ith-param> <!-<Ing-param> <param-name> redirectaftervalidation </param-name> <Param-name> useession </param-name> <Param-value> true </param-value> </ith-param>-> </filter> <filter mapping> <filter-name> ValiterFilter </filter-name> <url-pattern>/*</url-pattern> </filter mappapter> </filter this this is requisted your requisted the package hedted the package year there hed hedting hed hedting hed het het het htep. كسماح للمطورين بالحصول على اسم تسجيل الدخول للمستخدم الذي تم تسجيل الدخول إلى SSO من خلال طريقة getRemoteUser () لـ httpservletrequest ، والتكوين الاختياري. -> <Ivilter> <filter-name> httpservletrequestwrapperfilter </filter-name> <livided-class> org.jasig.cas.client.util.httpletRequestWrapperfilter </filter-class> </filter> <ilter-name> <Url-pattern>/*</url-pattern> </filter-mapping>
لذلك ، عندما نكون يدويًا ، نحتاج إلى تكوين المرشح المقابل يدويًا في XML أعلاه ، والرمز كما يلي:
configuration @component الفئة العامة casconfigure {bean publicergistrationbean antainticationFilterRegistrationBean () {filterregistrationBean antainticationFilter = new FilterRegistrationBean () ؛ AuthenticationFilter.setFilter (مصادقة جديدة ()) ؛ خريطة <string ، string> initParameters = new HashMap <string ، string> () ؛ initparameters.put ("CasserverLoginurl" ، "http://127.0.0.1/login") ؛ initparameters.put ("servername" ، "http://192.26.4.28:8080") ؛ AuthenticationFilter.setInitParameters (initparameters) ؛ AuthenticationFilter.setorder (2) ؛ قائمة <Tring> urlpatterns = new ArrayList <Tring> () ؛ urlpatterns.add ("/*") ؛ // set مطابقة ualthicationfilter.seturlpatterns (urlpatterns) ؛ إرجاع المصادقة. } bean publicerregistrationBean ValidationFilterRegistrationBean () {filterRegistrationBean anuffcionFilter = new filterregistrationBean () ؛ AuthenticationFilter.setFilter (New Cas20proxyeiveticketValidationFilter ()) ؛ خريطة <string ، string> initParameters = new HashMap <string ، string> () ؛ initparameters.put ("Casserverurlprefix" ، "http://127.0.0.1") ؛ initparameters.put ("servername" ، "http://192.26.4.28:8080") ؛ AuthenticationFilter.setInitParameters (initparameters) ؛ AuthenticationFilter.setorder (1) ؛ قائمة <Tring> urlpatterns = new ArrayList <Tring> () ؛ urlpatterns.add ("/*") ؛ // قم بتعيين مصادقة url المطابقة filter.seturlpatterns (urlpatterns) ؛ إرجاع المصادقة. } bean publicergistrationbean cashttpletRequestWrapperFilter () {filterRegistrationBean anuffecticationFilter = new FilterRegistrationBean () ؛ AuthenticationFilter.setFilter (httpservletrequestwrapperfilter ()) ؛ AuthenticationFilter.setorder (3) ؛ قائمة <Tring> urlpatterns = new ArrayList <Tring> () ؛ urlpatterns.add ("/*") ؛ // قم بتعيين مصادقة url المطابقة filter.seturlpatterns (urlpatterns) ؛ إرجاع المصادقة. } bean publicerregistrationbean casassertionThreadLocalFilter () {filterRegistrationBean antainticationFilter = new FilterRegistrationBean () ؛ AuthenticationFilter.setFilter (AssertionThReadLocalFilter ()) ؛ AuthenticationFilter.setorder (4) ؛ قائمة <Tring> urlpatterns = new ArrayList <Tring> () ؛ urlpatterns.add ("/*") ؛ // قم بتعيين مصادقة url المطابقة filter.seturlpatterns (urlpatterns) ؛ إرجاع المصادقة. }} من خلال التكوين أعلاه ، يمكن أيضًا إكمال مصادقة عميل CAS
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.