使用弹簧引导如何实现对CAS进行整合

  介绍

今天就跟大家聊聊有关使用弹簧引导如何实现对CAS进行整合,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

代码整合CAS的重要过程

进口org.jasig.cas.client.authentication.AuthenticationFilter;
  进口org.jasig.cas.client.session.SingleSignOutFilter;
  进口org.jasig.cas.client.session.SingleSignOutHttpSessionListener;
  进口org.jasig.cas.client.util.AssertionThreadLocalFilter;
  进口org.jasig.cas.client.util.HttpServletRequestWrapperFilter;
  进口org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter;
  进口org.jasig.cas.client.validation.Cas20ServiceTicketValidator;
  进口org.springframework.beans.factory.annotation.Autowired;
  进口org.springframework.boot.web.servlet.FilterRegistrationBean;
  进口org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
  进口org.springframework.context.annotation.Bean;
  进口org.springframework.context.annotation.Configuration;
  进口org.springframework.security.cas.ServiceProperties;
  进口org.springframework.security.cas.authentication.CasAuthenticationProvider;
  进口org.springframework.security.cas.userdetails.GrantedAuthorityFromAssertionAttributesUserDetailsService;
  进口org.springframework.security.web.authentication.logout.LogoutFilter;
  进口org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
  
  进口并不知道;
  
  
  @ configuration
  公开课CasConfig {
  
  @ autowired
  SpringCasAutoconfig autoconfig;
  
  私有静态布尔casEnabled=true;
  
  公共CasConfig () {
  }
  
  @ bean
  公共SpringCasAutoconfig getSpringCasAutoconfig () {
  返回新SpringCasAutoconfig ();
  }/* *
  *用于实现单点登出功能
  */@ bean
  公共ServletListenerRegistrationBeansingleSignOutHttpSessionListener () {
  ServletListenerRegistrationBean侦听器=new ServletListenerRegistrationBean<在();
  listener.setEnabled (casEnabled);
  侦听器。setListener(新SingleSignOutHttpSessionListener ());
  listener.setOrder (1);
  返回侦听器;
  }/* *
  *该过滤器用于实现单点登出功能,单点退出配置,一定要放在其他过滤之前
  */@ bean
  公共FilterRegistrationBean logOutFilter () {
  FilterRegistrationBean filterRegistration=new FilterRegistrationBean ();
  LogoutFilter LogoutFilter=new LogoutFilter (autoconfig.getCasServerUrlPrefix () +“/logout& # 63;服务=?新SecurityContextLogoutHandler + autoconfig.getServerName (), ());
  filterRegistration.setFilter (logoutFilter);
  filterRegistration.setEnabled (casEnabled);
  如果(autoconfig.getSignOutFilters () .size()在0)
  filterRegistration.setUrlPatterns (autoconfig.getSignOutFilters ());
  其他的
  filterRegistration.addUrlPatterns (“/logout");
  filterRegistration.addInitParameter (“casServerUrlPrefix" autoconfig.getCasServerUrlPrefix ());
  filterRegistration.addInitParameter (“serverName" autoconfig.getServerName ());
  filterRegistration.setOrder (2);
  返回filterRegistration;
  }/* *
  *该过滤器用于实现单点登出功能,单点退出配置,一定要放在其他过滤之前
  */@ bean
  公共FilterRegistrationBean singleSignOutFilter () {
  FilterRegistrationBean filterRegistration=new FilterRegistrationBean ();
  filterRegistration。setFilter(新SingleSignOutFilter ());
  filterRegistration.setEnabled (casEnabled);
  如果(autoconfig.getSignOutFilters () .size()在0)
  filterRegistration.setUrlPatterns (autoconfig.getSignOutFilters ());
  其他的
  filterRegistration.addUrlPatterns (“/*”);
  filterRegistration.addInitParameter (“casServerUrlPrefix" autoconfig.getCasServerUrlPrefix ());
  filterRegistration.addInitParameter (“serverName" autoconfig.getServerName ());
  filterRegistration.setOrder (3);
  返回filterRegistration;
  }/* *
  *该过滤器负责用户的认证工作
  */@ bean
  公共FilterRegistrationBean authenticationFilter () {
  FilterRegistrationBean filterRegistration=new FilterRegistrationBean ();
  filterRegistration。setFilter(新AuthenticationFilter ());
  filterRegistration.setEnabled (casEnabled);
  如果(autoconfig.getAuthFilters () .size()在0)
  filterRegistration.setUrlPatterns (autoconfig.getAuthFilters ());
  其他的
  filterRegistration.addUrlPatterns (“/*”);//casServerLoginUrl:中科院服务的登陆url
  filterRegistration.addInitParameter (“casServerLoginUrl" autoconfig.getCasServerLoginUrl ());//本项目登录ip +端口
  filterRegistration.addInitParameter (“serverName" autoconfig.getServerName ());
  filterRegistration.addInitParameter (“useSession" autoconfig.isUseSession (), # 63;“true":“false");
  filterRegistration.addInitParameter (“redirectAfterValidation" autoconfig.isRedirectAfterValidation (), # 63;“true":“false");
  filterRegistration.setOrder (4);
  返回filterRegistration;
  }/* *
  *该过滤器负责对机票的校验工作
  */@ bean
  公共FilterRegistrationBean cas20ProxyReceivingTicketValidationFilter () {
  FilterRegistrationBean filterRegistration=new FilterRegistrationBean ();
  Cas20ProxyReceivingTicketValidationFilter Cas20ProxyReceivingTicketValidationFilter=new Cas20ProxyReceivingTicketValidationFilter ();//cas20ProxyReceivingTicketValidationFilter.setTicketValidator (cas20ServiceTicketValidator ());
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

使用弹簧引导如何实现对CAS进行整合