Este artículo presenta un ejemplo de Spring Boot Intepating CAS Client para implementar una verificación de inicio de sesión único. Se comparte con usted y también deja una nota para usted. Los detalles son los siguientes:
Single Sign-On (SSO para Short) es una de las soluciones más populares para la integración empresarial empresarial. SSO permite a los usuarios acceder a todos los sistemas de aplicación de confianza mutua en múltiples sistemas de aplicación solo una vez.
Cliente CAS
Responsable de manejar solicitudes de acceso a los recursos protegidos por el cliente. Cuando es necesario autenticar la parte solicitante, redirige al servidor CAS para la autenticación. (En principio, las aplicaciones del cliente ya no aceptan ningún nombre de usuario, contraseña, etc.).
Método de implementación uno: use un iniciador de terceros
1. Depende del frasco
<Spendency> <ProupId> net.unicon.cas </groupid> <artifactid> cas-client-autoconfig-support </artifactid> <versión> 1.4.0-ga </versión> </pendency>
2. Agregar archivos de configuración
cas.server-url-prefix = http: //127.0.0.1 cas.server-login-url = http: //127.0.1/login cas.client-host-url = http: //192.26.4.28: 8080 cas.validation-type = cas
3. Encienda el soporte del cliente CAS
@Springbootapplication @ComponentsCan (basepackages = {"com.chhliu.emailservice"}) @enablecasclient // habilitar la aplicación de clase pública de CAS extiende SpringBootServletinitializer {public static void main (string [] args) {springapplication.run (application.class, args); }}¡A través de los 3 pasos anteriores, puede completar la autenticación del cliente CAS!
4. Expandir
CAS.Validation-Type actualmente admite 3 métodos: 1. CAS; 2. Cas3; 3. Saml
Otras configuraciones disponibles son las siguientes:
Cas.Authentication-URL-Patterns cas.validation-url-Patterns Cas.accept-anhyproxy Server.Context-Parameters.RENEW
El significado específico se puede ver claramente desde el nombre.
Método de implementación 2: Configuración manual
Utilizamos el cliente CAS y necesitamos configurar lo siguiente en Web.xml:
<filter> <filter-name> AuthenticationFilter </filter-name> <filter-class> org.jasig.cas.client.authentication.authenticationFilter </filter-class> <icparam> <amamamname> casserverloginurl </param-name> <amarr-value> http://127.0.0.0.1/login </parámetro>> <amarrón> </initparam> <Init-param> <amamname> ServerName </param-name> <param-value> http://192.26.4.28:8080 </param-value> </it-param> </filter> <filter-mapping> <filter-name> autenticationFilter </filter-name> <sl-pattern>/*<</shil </filter-mapping> <!-Este filtro es responsable de la verificación del ticket, y debe estar habilitado-> <filter> <filter-name> ValidationFilter </filtre-name> <filter-class> org.jasig.cas.client.validation.cas20proxyreceive ticketvalidationfilter </filter-class> <it-param> <Param-name> Casserverurlprefix </amamname> <Param-Value> http://127.0.0.1 </param-value> </it-param> <itelparam> <amamamname> servername </amamname> <amarr-value> http://192.26.4.28:8080 </param-valumin </init-param> <!-<initparam> <amamname> redirectAfterValidation </param-name> <amam-value> true </amam-value> </it-param> <itelparam> <amamname> useessessession </param-value> true </param-value> </it-param> --> <//filtro> <filter-name> ValidationFilter </filter-name> <url-pattern>/*</sl-pattern> </filter-mapping> <!-Este filtro es responsable de implementar el paquete solicitado por httpservletRequest, como permitir a los desarrolladores que obtengan el nombre de login de la configuración de inicio registrada a través del getRemoteuser () método de httpSeRElest y opción y opción. --> <filter> <filter-name>httpServletRequestWrapperFilter</filter-name> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> </filter> <filter-mapping> <filter-name>httpServletRequestWrapperFilter</filter-name> <Url-Pattern>/*</url-Pattern> </filt-mapping>
Por lo tanto, cuando configuramos manualmente, necesitamos configurar manualmente el filtro correspondiente en el XML anterior, y el código es el siguiente:
@Configuration @Component public class CasConfigure {@Bean Public FilterRegistrationBean AuthenticationFilterRegistrationBean () {FilterRegistrationBean AuthenticationFilter = new FilterGistrationBean (); autenticationFilter.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"); autenticationFilter.setInitParameters (initParameters); autenticationFilter.setOrder (2); List <String> urlPatterns = new ArrayList <String> (); URLPatterns.Add ("/*"); // Establecer autenticación de URL coincidentefilter.SetUrlPatterns (URLPatterns); return AuthenticationFilter; } @Bean public FilterRegistrationBean ValidationFilterRegistrationBean () {FilterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.SetFilter (nuevo 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"); autenticationFilter.setInitParameters (initParameters); AuthenticationFilter.SetOrder (1); List <String> urlPatterns = new ArrayList <String> (); URLPatterns.Add ("/*"); // Establezca la autenticación de URL coincidentefilter.SetUrlPatterns (URLPatterns); return AuthenticationFilter; } @Bean public FilterRegistrationBean CashttPservletRequestWrapperFilter () {FilterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.setFilter (nuevo httpservletRequestwrapperfilter ()); AuthenticationFilter.SetOrder (3); List <String> urlPatterns = new ArrayList <String> (); URLPatterns.Add ("/*"); // Establezca la autenticación de URL coincidentefilter.SetUrlPatterns (URLPatterns); return AuthenticationFilter; } @Bean public FilterRegistrationBean CasassertionThreadLocalFilter () {FilterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.SetFilter (New AffinTionThreadLocalFilter ()); autenticationFilter.setOrder (4); List <String> urlPatterns = new ArrayList <String> (); URLPatterns.Add ("/*"); // Establezca la autenticación de URL coincidentefilter.SetUrlPatterns (URLPatterns); return AuthenticationFilter; }} A través de la configuración anterior, la autenticación del cliente CAS también se puede completar
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.