이 기사에서는 Spring Boot의 예제를 소개하여 CAS 클라이언트를 통합하여 단일 로그인 확인을 구현합니다. 그것은 당신과 공유되며 자신을 위해 메모를 남깁니다. 세부 사항은 다음과 같습니다.
단일 사인온 (SSO)은 엔터프라이즈 비즈니스 통합에 가장 인기있는 솔루션 중 하나입니다. SSO를 통해 사용자는 여러 응용 프로그램 시스템에서 상호 신뢰할 수있는 모든 응용 프로그램 시스템에 한 번만 액세스 할 수 있습니다.
CAS 클라이언트
클라이언트 보호 자원에 대한 액세스 요청을 처리 할 책임이 있습니다. 요청 당사자를 인증 해야하는 경우 인증을 위해 CAS 서버로 리디렉션됩니다. (원칙적으로 클라이언트 응용 프로그램은 더 이상 사용자 이름, 비밀번호 등을 허용하지 않습니다).
구현 방법 1 : 타사 스타터를 사용하십시오
1. Jar에 의존합니다
<pectionency> <groupid> net.unicon.cas </groupid> <artifactid> cas-client-autoconfig-support </artifactid> <bersion> 1.4.0-ga </version> </fectionency>
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-cas
3. CAS 클라이언트 지원을 켜십시오
@SpringBootApplication @componentscan = { "com.chhliu.emailservice"}) @enablecasclient enable public class 응용 프로그램 확장 springbootservletinitializer {public static void main (String [] args) {springApplication.run (applact.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-shread-local-url-patterns cas.use-session cas. sredirect-after-validation cas.proxy-calbback-url cas. cas.accept-any-proxy 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> http://127.0.0.1/login </param-value> </init-param> <init-param> <param-name> servername </param-name> <param-value> http://192.26.4.28:8080 </param- value> <filter-name> authenticationFilter </filter-name> <Url-pattern>/*</url-pattern> </filter-mapping> <!-이 필터는 티켓 확인을 담당하고 있으며, <filter-name> valcationFilter </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 </regtparam> <init-param> <param-name> serverName </param-name> <param-value> http://192.26.4.28:8080 </param-value> </init-param> <!-<init-param> <apar-name> redirectaftervalidation </param-name> <param-value> </retag-param> <init-param> <param-name> useession </param-name> <param- value> true </param- value> </init-param>-> </filter> <filter-mapping> <filter-name> validationfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <! httpservletrequest의 getRemoteUser () 메소드를 통해 개발자가 SSO 로그인 사용자의 로그인 이름을 얻을 수 있도록 허용하는 httpservletRequest. -> <filter> <filter-name> httpservletrequestwrapperFilter </filter-name> <filter-class.jasig.cas.cas.cas.util.httpservletrequestwrapperFilter </filter-class> </filter> <filter-mapping> <filter-name> httpservletrequequpperfipplerfporpletwerpplerfippler QuestrequeSTRPROPPERFUPLETREQUESTREA <url-pattern>/*</url-pattern> </필터 매핑>
따라서 수동으로 구성하면 위의 XML에서 해당 필터를 수동으로 구성해야하며 코드는 다음과 같습니다.
@Configuration @Compigont 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.28:8080"); AuthenticationFilter.SetInitParameters (InitParameters); AuthenticationFilter.SetOrder (2); List <string> urlpatterns = new ArrayList <string> (); urlpatterns.add ( "/*"); // 일치하는 URL AuthenticationFilter.setUrlPatterns (urlPatterns); Return 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.28:8080"); AuthenticationFilter.SetInitParameters (InitParameters); AuthenticationFilter.SetOrder (1); List <string> urlpatterns = new ArrayList <string> (); urlpatterns.add ( "/*"); // 일치하는 URL AuthenticationFilter.setUrlPatterns (urlPatterns)를 설정합니다. Return AuthenticationFilter; } @bean public filterregistrationbean cashttpservletrequestwrapperfilter () {filterregistrationBean authenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.setFilter (new httpservletRequestWrapperFilter ()); AuthenticationFilter.SetOrder (3); List <string> urlpatterns = new ArrayList <string> (); urlpatterns.add ( "/*"); // 일치하는 URL AuthenticationFilter.setUrlPatterns (urlPatterns)를 설정합니다. Return AuthenticationFilter; } @bean public filterregistrationbean casassertionthreadlocalfilter () {filterregistrationbean authenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.setFilter (new AssertionThreadloCalfilter ()); AuthenticationFilter.SetOrder (4); List <string> urlpatterns = new ArrayList <string> (); urlpatterns.add ( "/*"); // 일치하는 URL AuthenticationFilter.setUrlPatterns (urlPatterns)를 설정합니다. Return AuthenticationFilter; }} 위의 구성을 통해 CAS 클라이언트 인증도 완료 할 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.