この記事では、Spring BootがCASクライアントを統合してシングルサインイン検証を実装する例を紹介します。それはあなたと共有され、またあなた自身のためにメモを残します。詳細は次のとおりです。
シングルサインオン(略してSSO)は、エンタープライズビジネス統合に最も人気のあるソリューションの1つです。 SSOを使用すると、ユーザーは複数のアプリケーションシステムで相互に信頼できるすべてのアプリケーションシステムに1回だけアクセスできます。
CASクライアント
クライアント保護されたリソースへのアクセス要求を処理する責任があります。要求者を認証する必要がある場合、認証のためにCASサーバーにリダイレクトします。 (原則として、クライアントアプリケーションは、ユーザー名、パスワードなどを受け入れなくなりました)。
実装方法1:サードパーティのスターターを使用します
1。瓶に依存します
<Dependency> groupId> net.unicon.cas </groupid> <artifactid> cas-client-autoconfig-support </artifactid> <バージョン> 1.4.0-ga </version> </dependency>
2.構成ファイルを追加します
cas.server-url-prefix = http://127.0.0.1 cas.server-login-url = http:///127.0.0.1/login cas.client-url = http://192.26.4.4.28:8080 CAS.Validation-Type = Cas
3. CASクライアントのサポートをオンにします
@springbootapplication @componentscan(basepackages = {"com.chhliu.emailservice"}) @enablecasclient // enable cas support public classアプリケーションは、public static void main(string [] args){springapplication.run(アプリケーション、args、args、class、class、class、class); }}上記の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-url-patterns cas.gateway cas.usesession cas.redirect-after-validation cas.allowed-chain CAS.ACCEPT-ANYPROXY SERVER.CONTEXT-PARAMETERS.RENEW
特定の意味は、名前からはっきりと見ることができます。
実装方法2:手動構成
CASクライアントを使用し、Web.xmlで以下を構成する必要がありました。
<filter> <filter-name> authenticationfilter </filter-name> <filter-class> org.jasig.cas.client.authentication.authenticationfilter </filter-class> <init-param> <param-name> casserverloginurl </param-name> <param-value> </init-param> <init-param> <param-name> servername </param-name> <param-value> http://192.26.4.4.28:8080 </param-value> </init-param> </filter> <filter-mapping> <filter-name>認証科<! - このフィルターはチケットの検証に責任があり、有効にする必要があります - > <filter> <filter-name> validationfilter </filter-name> <filter-class> org.jasig.client.validation.cas20proxyreceive ticketvalidationfilter> <param-value> http://127.0.0.1 </param-value> </init-param> <init-param> <param-name> servername </param-name> <param-value> http:///192.26.4.4.28:8080 </param-> </init-param> <param-name> redirectaftervalidation </param-name> <param-value> true </param-value> </init-param> <init-param> <param-name> usessession </param-name> <param-value> true </parim-value> </init-param> - > </</<フィルターマッピング> <フィルターマッピング> <フィルターマッピング> < <url-pattern>/*</url-pattern> </filter-mapping> <! - このフィルターは、httpsermoteuser()メソッドを介してSSOログインユーザーのログイン名を取得できるようにするなど、httpservletrequestが要求したパッケージを実装する責任があります。 - > <filter> <filter-name> httpservletrequestwrapperfilter </filter-name> <filter-class> org.jasig.cas.client.util.httpservletrequestwrapperfilter </filter-class> </filter> <filter-mapping> httpservletrequestwrapper-name> <url-pattern>/*</url-pattern> </フィルターマッピング>
したがって、手動で構成する場合、上記のXMLで対応するフィルターを手動で構成する必要があります。コードは次のとおりです。
@configuration @Component Public Class CasConFigure {@Bean Public FilterRegistrationBean AuthenticationFilterRegistrationBean(){FilterRegistrationBean AuthenticationFilter = new FilterRegistrationBean(); AuthenticationFilter.setFilter(new AuthenticationFilter()); map <string、string> initparameters = new hashmap <string、string>(); initparameters.put( "casserverloginurl"、 "http://127.0.0.1/login"); initParameters.put( "servername"、 "http://192.26.4.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 = new FilterRegistrationBean(); authenticationFilter.setFilter(new cas20ProxyreceiveticketValidationFilter()); map <string、string> initparameters = new hashmap <string、string>(); initparameters.put( "casserverurlprefix"、 "http://127.0.0.1"); initParameters.put( "servername"、 "http://192.26.4.4.28:8080"); AuthenticationFilter.setInitParameters(initparameters); authenticationfilter.setorder(1);リスト<String> urlpatterns = new ArrayList <String>(); urlpatterns.add( "/*"); //一致するurl authenticationfilter.seturlpatterns(urlpatterns); AuthenticationFilterを返します。 } @bean public filterregistrationbean cashtttservletrequestwrapperfilter(){filterregistrationbean authenticationfilter = new FilterRegistrationBean(); AuthenticationFilter.setFilter(new httpservletrequestwrapperfilter()); AuthenticationFilter.setorder(3);リスト<String> urlpatterns = new ArrayList <String>(); urlpatterns.add( "/*"); //一致するurl authenticationfilter.seturlpatterns(urlpatterns); AuthenticationFilterを返します。 } @bean public filterregistrationbean casassertionthreadlocalfilter(){filterregistrationbean authenticationfilter = new FilterRegistrationBean(); AuthenticationFilter.setFilter(new AssertionThreadLocalFilter()); authenticationfilter.setorder(4);リスト<String> urlpatterns = new ArrayList <String>(); urlpatterns.add( "/*"); //一致するurl authenticationfilter.seturlpatterns(urlpatterns); AuthenticationFilterを返します。 }}上記の構成により、CASクライアント認証も完了することができます
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。