激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - spring boot整合CAS Client實現單點登陸驗證的示例

spring boot整合CAS Client實現單點登陸驗證的示例

2021-03-23 13:18牛奮lch JAVA教程

本篇文章主要介紹了spring boot整合CAS Client實現單點登陸驗證的示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了spring boot整合CAS Client實現單點登陸驗證的示例,分享給大家,也給自己留個筆記,具體如下:

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

CAS Client

負責處理對客戶端受保護資源的訪問請求,需要對請求方進行身份認證時,重定向到 CAS Server 進行認證。(原則上,客戶端應用不再接受任何的用戶名密碼等 Credentials )。

實現方式一:使用第三方的starter

1、依賴的jar

?
1
2
3
4
5
<dependency>
  <groupId>net.unicon.cas</groupId>
  <artifactId>cas-client-autoconfig-support</artifactId>
  <version>1.4.0-GA</version>
 </dependency>

2、增加配置文件

?
1
2
3
4
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支持

?
1
2
3
4
5
6
7
8
9
10
@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的客戶端認證了!

4、擴展

cas.validation-type目前支持3中方式:1、CAS;2、CAS3;3、SAML

其他可用的配置如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
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

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

實現方式二:手動配置

我們原來使用CAS Client,需要在web.xml中做如下配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<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>
 <!-- 該過濾器負責對Ticket的校驗工作,必須啟用它 -->
 <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>
 <!-- 該過濾器負責實現HttpServletRequest請求的包裹, 比如允許開發者通過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>

所以,我們手動配置的時候,需要手動配置上面xml中對應的Filter,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@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("/*");// 設置匹配的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("/*");// 設置匹配的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("/*");// 設置匹配的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("/*");// 設置匹配的url
 authenticationFilter.setUrlPatterns(urlPatterns);
 return authenticationFilter;
 }
}

通過上面的配置,也可以完成CAS Client的認證

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/liuchuanhong1/article/details/73176603

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本成人一区二区 | 美国av免费看 | 欧美成人精品不卡视频在线观看 | 中文字幕在线观看www | 精品小视频 | 免费高清一级欧美片在线观看 | 日韩在线播放第一页 | 综合国产一区 | 性欧美视频在线观看 | 久久撸视频| 婷婷久久网 | 久久精品小短片 | 黄色片视频在线观看 | 久久久99精品视频 | 欧美成人午夜一区二区三区 | 久久蜜桃香蕉精品一区二区三区 | 久久99精品久久久久久久久久久久 | sm高h视频| 性猛aa久久久 | 国产精品视频1区 | 免费嗨片首页中文字幕 | 色妇视频 | 成人福利视频网站 | 国产精品自拍av | 亚洲91网 | 国产一级做a爰片在线看 | 精品无吗乱吗av国产爱色 | 国产精品久久久久久久久久久久久久久久 | 欧美大荫蒂xxx | 久久久久久久久久美女 | 女人裸体让男人桶全过程 | 一级少妇女片 | 91色综合综合热五月激情 | 免费观看黄色一级视频 | 成人爱情偷拍视频在线观看 | av在线一区二区三区四区 | 天天干天天透 | 亚洲91精品 | 黄色一级片在线观看 | 在线免费小视频 | 久色精品视频 |