Este artigo apresenta um exemplo do Spring Boot Integrating CAS para implementar uma única verificação de inscrição. É compartilhado com você e também deixa uma nota para si mesmo. Os detalhes são os seguintes:
O sinalizador único (SSO para curta) é uma das soluções mais populares para a integração de negócios corporativos. O SSO permite que os usuários acessem todos os sistemas de aplicativos mutuamente confiáveis em vários sistemas de aplicativos apenas uma vez.
Cliente CAS
Responsável por lidar com solicitações de acesso aos recursos protegidos pelo cliente. Quando é necessário autenticar a parte solicitadora, ele redireciona para o servidor CAS para autenticação. (Em princípio, os aplicativos do cliente não aceitam mais nenhum nome de usuário, senha etc.).
Método de implementação Um: use um iniciador de terceiros
1. Depende do jar
<Depencency> <voundid> net.unicon.cas </proupid> <stifactId> Cas-client-autoconfig-support </stutifactId> <versão> 1.4.0-ga </sipers> </dependence>
2. Adicione arquivos de configuração
Cas.server-url-prefix = http: //127.0.0.1 cas.server-login-url = http: //127.0.0.1/login Cas.clienthost-url = http: //192.26.4.28: 8080.validation-casp-ttp.
3. Ligue o suporte ao cliente CAS
@SpringBootApplication @ComponentScan(basePackages={"com.chhliu.emailservice"}) @EnableCasClient // Enable CAS support public class Application extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(Application.class, args); }}Nas 3 etapas acima, você pode concluir a autenticação do cliente CAS!
4. Expanda
Atualmente, o Cas.Validation-Type suporta 3 métodos: 1. CAS; 2. Cas3; 3. Saml
Outras configurações disponíveis são as seguintes:
Cas.authentication-url-patterns Cas.Validation-Url-Patterns Cas.Request-Wrapper-Url-Patterns Cas.accept-any-proxy server.context-parameters.renew
O significado específico pode ser visto claramente a partir do nome.
Método de implementação 2: Configuração manual
Usamos o cliente CAS e precisamos configurar o seguinte no web.xml:
<filter> <filter-name> AuthenticationFilter </filter-Name> <filter-Class> org.jasig.cas.client.authentication.authenticationfilter </ftrids-class> <iot-param> <amam-name> CasserverLoGinurl </param-name> <aam-value> http:/12212 </param-name> http:/272 </param-valuam> http:/1212 </param-valuam> http:/270 </param-valuam> http:/270 </param-valuam> http:/270 </param-valuam> http:/270 </param-valuam> http:/1212/ </init-paparam> <iit-param> <amam-name> servername </amam-name> <amam-value> http://192.26.4.28:8080 </amam-value> </init-param> </filter> <lter-mapp-name> Authentication> </-filter> <!-- 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> <amam-value> http://127.0.0.1 </param-value> </irit-param> <iit-param> <amam-name> servername </param-name> <amam-value> http://192.26.4.28:8080 </param-value> </inot-param> </inot-s-param> </inis-/192.26.2.2.8080 </param-Value> </inistry/192.26.2.4.28080 </param-Value> <amam-name> RedirectAfterValidation </param-name> <amam-value> true </amam-value> </irit--param> <iit-param> <amam-name> usaSession </amam-name> </Param-Maptalue> True </param-value> </init-param>-> </filter> <fstermapping> validation> validação </value> </irit-param>-> </filter> <filtroe> validação <namelation> </value> </init-param> </filter> <url-pattern>/*</url-tattern> </filter-mapping> <!-Este filtro é responsável por implementar o pacote solicitado pelo httpServletRequest, como permitir que os desenvolvedores obtenham o nome de login do usuário de login SSO através do método getRemoteUser () do httPretleTrequest, e o método de opção. -> <filter> <filter-name> httpServletRequestWrapperFilter </filter-name> <filter-class> org.jasig.cas.client.util.httpServletRequestWrapperFilter </filter-class> </filter> <filter-mapping> <filtername> httStlestlestlestertertern. <url-pattern>/*</url-tattern> </filter-Mapping>
Portanto, quando configuramos manualmente, precisamos configurar manualmente o filtro correspondente no XML acima, e o código é o seguinte:
@Configuration @component public class Casconfigure {@Bean public filterRegistrationBean AuthenticationFilterRegistrationBean () {filterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); autenticationfilter.setFilter (new AuthenticationFilter ()); Mapa <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 ("/*"); // Definir URL correspondente AuthenticationFilter.SeturlPatterns (urlPatterns); return autenticationfilter; } @Bean public filterRegistrationBean ValidationFilterRegistrationBean () {filterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.SetFilter (novo Cas20ProxyReCeiveticketValidationFilter ()); Mapa <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 ("/*"); // Defina o URL correspondente AuthenticationFilter.SeturlPatterns (urlPatterns); return autenticationfilter; } @Bean public filterRegistrationBean CashTtpServletRequestWrapperFilter () {filterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.SetFilter (novo httpServletRequestWrapperFilter ()); AuthenticationFilter.setorder (3); List <String> urlpatterns = new ArrayList <String> (); urlpatterns.add ("/*"); // Defina o URL correspondente AuthenticationFilter.SeturlPatterns (urlPatterns); return autenticationfilter; } @Bean public filterRegistrationBean CasasSertionThreadLocalfilter () {filterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.SetFilter (New AssertionThreadLocalfilter ()); AuthenticationFilter.setorder (4); List <String> urlpatterns = new ArrayList <String> (); urlpatterns.add ("/*"); // Defina o URL correspondente AuthenticationFilter.SeturlPatterns (urlPatterns); return autenticationfilter; }} Através da configuração acima, a autenticação do cliente CAS também pode ser concluída
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.