介绍
今天就跟大家聊聊有关使用弹簧引导如何实现对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进行整合