บทความนี้แนะนำตัวอย่างของสปริงบูตไคลเอนต์ CAS เพื่อใช้การตรวจสอบการลงชื่อเข้าใช้ครั้งเดียว มันถูกแบ่งปันกับคุณและยังทิ้งโน้ตไว้ด้วยตัวคุณเอง รายละเอียดมีดังนี้:
Single Sign-On (SSO for Short) เป็นหนึ่งในโซลูชั่นที่ได้รับความนิยมมากที่สุดสำหรับการรวมธุรกิจขององค์กร SSO ช่วยให้ผู้ใช้สามารถเข้าถึงระบบแอปพลิเคชันที่เชื่อถือได้ร่วมกันทั้งหมดในระบบแอปพลิเคชันหลายระบบเท่านั้น
ลูกค้า CAS
รับผิดชอบในการจัดการคำขอการเข้าถึงไปยังทรัพยากรที่ได้รับการป้องกันลูกค้า เมื่อมีความจำเป็นต้องตรวจสอบสิทธิ์ฝ่ายที่ร้องขอจะเปลี่ยนเส้นทางไปยัง CAS Server เพื่อตรวจสอบสิทธิ์ (โดยหลักการแล้วแอปพลิเคชันไคลเอนต์ไม่ยอมรับชื่อผู้ใช้รหัสผ่าน ฯลฯ )
วิธีการใช้งานหนึ่ง: ใช้ผู้เริ่มต้นบุคคลที่สาม
1. ขึ้นอยู่กับขวด
<Ederency> <sderctId> net.unicon.cas </groupId> <ratifactid> cas-client-autoconfig-support </artifactid> <version> 1.4.0-ga </version> </derency>
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.28: 80800000000000000000000000000000000000
3. เปิดการสนับสนุนลูกค้า CAS
@springbootapplication @componentscan (basepackages = {"com.chhliu.emailservice"}) @enablecasclient // เปิดใช้งานแอปพลิเคชันระดับสาธารณะที่สนับสนุน CAS ขยาย SpringbootservletInitializer -ผ่านขั้นตอน 3 ขั้นตอนข้างต้นคุณสามารถเสร็จสิ้นการรับรองความถูกต้องของไคลเอนต์ CAS!
4. ขยาย
ปัจจุบัน Cas.Validation-type รองรับ 3 วิธี: 1. CAS; 2. Cas3; 3. Saml
การกำหนดค่าอื่น ๆ ที่มีอยู่มีดังนี้:
cas.authentication-url-patterns cas.validation-url-patterns cas.request-wrapper-url-patterns cas.assertion-thread-local-url-patterns cas.gateway cas.use-session cas.redirect- cas.accept-any-proxy server.context-parameters.renew
ความหมายเฉพาะสามารถมองเห็นได้อย่างชัดเจนจากชื่อ
วิธีการใช้งาน 2: การกำหนดค่าด้วยตนเอง
เราใช้ไคลเอนต์ CAS และจำเป็นต้องกำหนดค่าต่อไปนี้ใน web.xml:
<Tilter> <Tilter-Name> AuthenticationFilter </filter-name> <sater-class> org.jasig.cas.client.authentication.authenticationFilter </filter-class> <int-param> <param-name> <param-value> http://127.0.0.1/login </param-value> </init-param> <init-Param> <param-Name> Servername </param-Name> <Tilter-Name> AuthenticationFilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-ตัวกรองนี้รับผิดชอบการตรวจสอบตั๋วและต้องเปิดใช้งาน-> <filter> <Tilter-class> org.jasig.cas.client.validation.cas20proxyreceive TicketValidationFilter </filter-class> <init-Param> <param-Name> CasserverUrlprefix </param-name> <param-name> servername </param-name> <param-value> http://192.26.4.28:8080 </param-value> </init-param> <!-<init-param> <param-name> <param-name> useSession </param-name> <param-value> True </param-value> </init-param>-> </filter> <s Filter-Mapping> เพื่อให้นักพัฒนาได้รับชื่อเข้าสู่ระบบของผู้ใช้ SSO ที่เข้าสู่ระบบผ่านวิธีการ getRemoteUser () ของ httpservletrequest และการกำหนดค่าเสริม -> <filter> <filter-name> httpservletRequestWrapperFilter </filter-name> <filter-class> org.jasig.cas.client.util.httpservletRequestWrapperFilter </filter-class> </filter> <url-pattern>/*</url-pattern> </filter-mapping>
ดังนั้นเมื่อเรากำหนดค่าด้วยตนเองเราจำเป็นต้องกำหนดค่าตัวกรองที่เกี่ยวข้องด้วยตนเองใน XML ด้านบนและรหัสมีดังนี้:
@configuration @component คลาสสาธารณะ casconfigure {@bean public filterregistrationbean uthenticationFilterRegistrationBean () {filterRegistrationBean AuthenticationFilter = ใหม่ FilterRegistrationBean (); AuthenticationFilter.SetFilter (AuthenticationFilter ใหม่ ()); แผนที่ <สตริงสตริง> 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); รายการ <String> urlpatterns = new ArrayList <String> (); urlpatterns.add ("/*"); // ตั้งค่าการจับคู่ URL AuthenticationFilter.seturlpatterns (urlpatterns); ส่งคืน AuthenticationFilter; } @Bean Public FilterRegistrationBean ValidationFilterRegistrationBean () {FilterRegistrationBean AuthenticationFilter = ใหม่ FilterRegistrationBean (); AuthenticationFilter.SetFilter (ใหม่ CAS20ProxyReceIveticketValidationFilter ()); แผนที่ <สตริงสตริง> 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); รายการ <String> urlpatterns = new ArrayList <String> (); urlpatterns.add ("/*"); // ตั้งค่า URL AuthenticationFilter.seturlpatterns (urlpatterns); ส่งคืน AuthenticationFilter; } @Bean Public FilterRegistrationBean CASHTTTPSERVLETREQUESTWRAPPERFILTER () {FilterRegistrationBean AuthenticationFilter = ใหม่ FilterRegistrationBean (); AuthenticationFilter.SetFilter (ใหม่ httpservletRequestWrapperFilter ()); AuthenticationFilter.SetOrder (3); รายการ <String> urlpatterns = new ArrayList <String> (); urlpatterns.add ("/*"); // ตั้งค่า URL AuthenticationFilter.seturlpatterns (urlpatterns); ส่งคืน AuthenticationFilter; } @Bean Public FilterRegistrationBean CASASSERTIONTHREADLOCALFILTER () {FilterRegistrationBean AuthenticationFilter = FilterRegistrationBean ใหม่ (); AuthenticationFilter.SetFilter (ใหม่ assertionThreadLocalFilter ()); AuthenticationFilter.SetOrder (4); รายการ <String> urlpatterns = new ArrayList <String> (); urlpatterns.add ("/*"); // ตั้งค่า URL AuthenticationFilter.seturlpatterns (urlpatterns); ส่งคืน AuthenticationFilter; - ผ่านการกำหนดค่าข้างต้นการรับรองความถูกต้องของไคลเอ็นต์ CAS สามารถเสร็จสิ้นได้
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น