Artikel ini memperkenalkan contoh klien CAS Spring Boot mengintegrasikan untuk menerapkan verifikasi masuk tunggal. Ini dibagikan kepada Anda dan juga meninggalkan catatan untuk diri sendiri. Dengan rincian sebagai berikut:
Single Sign-On (SSO singkatnya) adalah salah satu solusi paling populer untuk integrasi bisnis perusahaan. SSO memungkinkan pengguna untuk mengakses semua sistem aplikasi yang saling tepercaya di beberapa sistem aplikasi hanya sekali.
Klien CAS
Bertanggung jawab untuk menangani permintaan akses ke sumber daya yang dilindungi klien. Ketika diperlukan untuk mengotentikasi pihak yang meminta, ia mengarahkan kembali ke server CAS untuk otentikasi. (Pada prinsipnya, aplikasi klien tidak lagi menerima nama pengguna, kata sandi, dll.).
Metode Implementasi Satu: Gunakan starter pihak ketiga
1. Bergantung pada Jar
<dependency> <GroupId> net.unicon.cas </groupid> <ArTifactId> cas-client-autoconfig-pupport </artifactid> <version> 1.4.0-ga </version> </dependency>
2. Tambahkan file konfigurasi
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 = //192.26.4.28: 8080 cas.validation = http =192.26.4.28: 8080 cas.validation = http =192.26.4.28: 8080 cas.validation = http =192.26.4.28: 8080 cas.validation cas.
3. Nyalakan dukungan klien CAS
@SpringbootApplication @ComponentScan (BasEpackages = {"com.chhliu.emailservice"}) @enableCasclient // Aktifkan aplikasi kelas publik CAS memperluas springbootservletinitializer {public static void (string [] args) {springapplication.run (application. }}Melalui 3 langkah di atas, Anda dapat menyelesaikan otentikasi klien CAS!
4. Perluas
cas.validation-type saat ini mendukung 3 metode: 1. CAS; 2. Cas3; 3. Saml
Konfigurasi lain yang tersedia adalah sebagai berikut:
cas.authentication-url-pola cas.validation-url-pola cas.Request-wrapper-Patterns cas.assion-thread-local-patterns cas.gateway cas.Use-sesi cas. CAS.Accept-any-proxy server.context-parameters.renew
Makna spesifik dapat dilihat dengan jelas dari namanya.
Metode Implementasi 2: Konfigurasi Manual
Kami menggunakan CAS Client dan perlu mengonfigurasi yang berikut di Web.xml:
<filter> <filter-name> authenticationFilter </tilter-name> <nilter-class> org.jasig.cas.client.authentication.authenticationFilter </tilter-class> <Ilin-param> <param-name> casserverLogin.1/077.1.127 </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://192.26.4.28:8080</param-value> </init-param> </filter> <filter-mapping> <filter-name>authenticationFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- This filter is responsible for the verification of Ticket, and it must be enabled --> <filter> <filter-name>validationFilter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceive TicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <Param-Value> http://127.0.0.1 </param-value> </init-param> <Ilin-param> <param-name> servername </param-name> <param-value> http://192.26.4.28:8080 </param-value> </param> </param> </param> </param> <! <param-name> redirectaftervalidation </param-name> <param-value> true </param-value> </it-param> <Ilin-param> <param-name> menggunakan </param-name> <param-value> </param-value> </init-param> </filter> </filter> </param-value> </init-param>-> </filter> </filter-papping </param-value> </init-param>-> </filter> </filter-papping </param-value> </init-param>-> </filter> <terfily-papping-papping </param-value> </init-param>-</filter> <filter-papping> </param-value> </init-param>-</filter> <filter-papping-petak <RURL-PATERS>/*</RURL-PATERS> </TERFERTER-MAPPING> <!-Filter ini bertanggung jawab untuk mengimplementasikan paket yang diminta oleh httpservletRequest, seperti memungkinkan pengembang untuk mendapatkan nama login dari pengguna login SSO melalui konfigurasi getRemoteUser () dari httpservlete. dan konfigurasi opsional. -> <nilter> <filter-name> httpservletRequestWrapperFilter </tiler-name> <Stiler-class> org.jasig.cas.client.util.httpservletRequestWrapperFilter </filter-class> </filter> <nilter-papping> <filtername-name> httpservletreques <RURL-PATERS>/*</URL-PATERS> </TERFERTER-MAPPING>
Oleh karena itu, ketika kami mengonfigurasi secara manual, kami perlu mengonfigurasi filter yang sesuai secara manual di XML di atas, dan kode adalah sebagai berikut:
@Configuration @component kelas publik casconfigure {@bean filterregistrationBean authenticationFilterregistrationBean () {filterRegistrationBean authenticationFilter = new filterregistrationBean (); authenticationFilter.setFilter (new AuthenticationFilter ()); Peta <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); Daftar <String> urlpatterns = ArrayList baru <string> (); urlpatterns.add ("/*"); // atur pencocokan URL authenticationFilter.setUrlPatterns (urlpatterns); Return AuthenticationFilter; } @Bean filter registrasi validasionfilterregistrationBean () {filterregistrationBean authenticationFilter = new filterregistrationBean (); authenticationFilter.setFilter (cas20proxyreceiveticketvalidationFilter baru ()); Peta <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); Daftar <String> urlpatterns = ArrayList baru <string> (); urlpatterns.add ("/*"); // Atur otentikasi URL yang cocok. Return AuthenticationFilter; } @Bean Public FilterRegistrationBean CashTTPServletRequestWrapperFilter () {filterRegistrationBean authenticationFilter = new filterregistrationBean (); authenticationFilter.setFilter (httpservletrequestwrapperfilter baru ()); AuthenticationFilter.Setorder (3); Daftar <String> urlpatterns = ArrayList baru <string> (); urlpatterns.add ("/*"); // Atur otentikasi URL yang cocok. Return AuthenticationFilter; } @Bean filter registrasi publik casassertionThreadlocalfilter () {filterregistrationBean authenticationFilter = new filterregistrationBean (); authenticationFilter.setFilter (assertionThreadlocalfilter () baru; authenticationFilter.setorder (4); Daftar <String> urlpatterns = ArrayList baru <string> (); urlpatterns.add ("/*"); // Atur otentikasi URL yang cocok. Return AuthenticationFilter; }} Melalui konfigurasi di atas, otentikasi klien CAS juga dapat diselesaikan
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.