欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring boot整合CAS Client實(shí)現(xiàn)單點(diǎn)登陸驗(yàn)證的示例

 更新時(shí)間:2018年01月16日 11:54:25   作者:牛奮lch  
本篇文章主要介紹了spring boot整合CAS Client實(shí)現(xiàn)單點(diǎn)登陸驗(yàn)證的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

本文介紹了spring boot整合CAS Client實(shí)現(xiàn)單點(diǎn)登陸驗(yàn)證的示例,分享給大家,也給自己留個(gè)筆記,具體如下:

單點(diǎn)登錄( Single Sign-On , 簡稱 SSO )是目前比較流行的服務(wù)于企業(yè)業(yè)務(wù)整合的解決方案之一, SSO 使得在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要 登錄一次 就可以訪問所有相互信任的應(yīng)用系統(tǒng)。

CAS Client

負(fù)責(zé)處理對(duì)客戶端受保護(hù)資源的訪問請(qǐng)求,需要對(duì)請(qǐng)求方進(jìn)行身份認(rèn)證時(shí),重定向到 CAS Server 進(jìn)行認(rèn)證。(原則上,客戶端應(yīng)用不再接受任何的用戶名密碼等 Credentials )。

實(shí)現(xiàn)方式一:使用第三方的starter

1、依賴的jar

<dependency> 
  <groupId>net.unicon.cas</groupId> 
  <artifactId>cas-client-autoconfig-support</artifactId> 
  <version>1.4.0-GA</version> 
 </dependency> 

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-type=CAS 

3、開啟CAS Client支持

@SpringBootApplication 
@ComponentScan(basePackages={"com.chhliu.emailservice"}) 
@EnableCasClient // 開啟CAS支持 
public class Application extends SpringBootServletInitializer{ 
 
 public static void main(String[] args) { 
 SpringApplication.run(Application.class, args); 
  
 } 
} 

通過上面的3步,就可以完成CAS的客戶端認(rèn)證了!

4、擴(kuò)展

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-thread-local-url-patterns 
cas.gateway 
cas.use-session 
cas.redirect-after-validation 
cas.allowed-proxy-chains 
cas.proxy-callback-url 
cas.proxy-receptor-url 
cas.accept-any-proxy 
server.context-parameters.renew 

具體的含義從名字上就可以很清楚的看出來。

實(shí)現(xiàn)方式二:手動(dòng)配置

我們原來使用CAS Client,需要在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> 
 </init-param> 
 </filter> 
 <filter-mapping> 
 <filter-name>authenticationFilter</filter-name> 
 <url-pattern>/*</url-pattern> 
 </filter-mapping> 
 <!-- 該過濾器負(fù)責(zé)對(duì)Ticket的校驗(yàn)工作,必須啟用它 --> 
 <filter> 
 <filter-name>validationFilter</filter-name> 
 <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> 
 <init-param> 
  <param-name>casServerUrlPrefix</param-name> 
  <param-value>http://127.0.0.1</param-value> 
 </init-param> 
 <init-param> 
  <param-name>serverName</param-name> 
  <param-value>http://192.26.4.28:8080</param-value> 
 </init-param> 
 <!-- <init-param> 
  <param-name>redirectAfterValidation</param-name> 
  <param-value>true</param-value> 
 </init-param> 
 <init-param> 
  <param-name>useSession</param-name> 
  <param-value>true</param-value> 
 </init-param> --> 
 </filter> 
 <filter-mapping> 
 <filter-name>validationFilter</filter-name> 
 <url-pattern>/*</url-pattern> 
 </filter-mapping> 
 <!-- 該過濾器負(fù)責(zé)實(shí)現(xiàn)HttpServletRequest請(qǐng)求的包裹, 比如允許開發(fā)者通過HttpServletRequest的getRemoteUser()方法獲得SSO登錄用戶的登錄名,可選配置。 --> 
 <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> 
 </filter-mapping> 

所以,我們手動(dòng)配置的時(shí)候,需要手動(dòng)配置上面xml中對(duì)應(yīng)的Filter,代碼如下:

@Configuration 
@Component 
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("/*");// 設(shè)置匹配的url 
 authenticationFilter.setUrlPatterns(urlPatterns); 
 return authenticationFilter; 
 } 
 
 @Bean 
 public FilterRegistrationBean ValidationFilterRegistrationBean(){ 
 FilterRegistrationBean authenticationFilter = new FilterRegistrationBean(); 
 authenticationFilter.setFilter(new Cas20ProxyReceivingTicketValidationFilter()); 
 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("/*");// 設(shè)置匹配的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("/*");// 設(shè)置匹配的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("/*");// 設(shè)置匹配的url 
 authenticationFilter.setUrlPatterns(urlPatterns); 
 return authenticationFilter; 
 } 
} 

通過上面的配置,也可以完成CAS Client的認(rèn)證

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文詳解Java攔截器與過濾器的使用

    一文詳解Java攔截器與過濾器的使用

    這篇文章主要為大家詳細(xì)介紹了Java中攔截器與過濾器的使用與區(qū)別,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定參考價(jià)值,需要的可以參考一下
    2022-04-04
  • 淺談Java內(nèi)存泄露

    淺談Java內(nèi)存泄露

    內(nèi)存泄漏(Memory Leak)是指程序中己動(dòng)態(tài)分配的堆內(nèi)存由于某種原因程序未釋放或無法釋放,造成系統(tǒng)內(nèi)存的浪費(fèi),導(dǎo)致程序運(yùn)行速度減慢甚至系統(tǒng)崩潰等嚴(yán)重后果。下面我們來一起了解如何解決
    2019-05-05
  • java 生成文字圖片的示例代碼

    java 生成文字圖片的示例代碼

    本篇文章主要介紹了java 生成文字圖片的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 通過openpyxl讀取excel文件過程解析

    通過openpyxl讀取excel文件過程解析

    這篇文章主要介紹了通過openpyxl讀取excel文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • idea配置Tomcat時(shí)沒有Artifacts選項(xiàng)的解決方法

    idea配置Tomcat時(shí)沒有Artifacts選項(xiàng)的解決方法

    本文主要介紹了idea配置Tomcat時(shí)沒有Artifacts選項(xiàng)的解決方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Mybatis Log Plugin的使用方式

    Mybatis Log Plugin的使用方式

    這篇文章主要介紹了Mybatis Log Plugin的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 帶你入門Java的方法

    帶你入門Java的方法

    這篇文章主要介紹了java基礎(chǔ)之方法詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-07-07
  • Java詳解實(shí)現(xiàn)多線程的四種方式總結(jié)

    Java詳解實(shí)現(xiàn)多線程的四種方式總結(jié)

    哈哈!經(jīng)過一個(gè)階段的學(xué)習(xí),Java基礎(chǔ)知識(shí)學(xué)習(xí)終于到多線程了!Java多線程以及后面互斥鎖的概念都是Java基礎(chǔ)學(xué)習(xí)的難點(diǎn),所以我做了一個(gè)總結(jié),希望對(duì)大家也有幫助
    2022-07-07
  • 源碼分析SpringMvc日志打印被忽略輸出問題

    源碼分析SpringMvc日志打印被忽略輸出問題

    這篇文章主要為大家介紹了源碼分析SpringMvc日志打印被忽略輸出問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 教你通過B+Tree平衡多叉樹理解InnoDB引擎的聚集和非聚集索引

    教你通過B+Tree平衡多叉樹理解InnoDB引擎的聚集和非聚集索引

    大家都知道B+Tree是從二叉樹演化而來,在這之前我們來先了解二叉樹、平衡二叉樹、平衡多叉樹,這篇文章主要介紹了通過B+Tree平衡多叉樹理解InnoDB引擎的聚集和非聚集索引,需要的朋友可以參考下
    2022-01-01

最新評(píng)論