国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Spring Security整合CAS的示例代碼

Spring Security整合CAS的示例代碼

2021-05-13 12:01亂世浮生 Java教程

本篇文章主要介紹了Spring Security整合CAS的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

這里使用的是spring-security和原生的jasig cas包來進(jìn)行整合,為什么沒有直接使用spring提供的spring-security-cas,后面會(huì)進(jìn)行解釋。

配置

web.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
<filter>
 <filter-name>casfilterchain</filter-name>
 <filter-class>org.springframework.web.filter.delegatingfilterproxy</filter-class>
</filter>
<filter-mapping>
 <filter-name>casfilterchain</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>
 
<listener>
 <listener-class>org.jasig.cas.client.session.singlesignouthttpsessionlistener</listener-class>
</listener>

applicationcontext-security.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
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
  xmlns:security="http://www.springframework.org/schema/security"
  xmlns:util="http://www.springframework.org/schema/util"
  xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/security
  http://www.springframework.org/schema/security/spring-security-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
 
 <bean id="casfilterchain" class="org.springframework.security.web.filterchainproxy">
  <constructor-arg>
   <util:list>
    <security:filter-chain pattern="/**" filters="singlesignoutfilter, cas20proxyreceivingticketvalidationfilter, authenticationfilter, httpservletrequestwrapperfilter, assertionthreadlocalfilter"/>
   </util:list>
  </constructor-arg>
 </bean>
 
 <bean id="singlesignoutfilter" class="org.jasig.cas.client.session.singlesignoutfilter"/>
 
 <bean id="cas20proxyreceivingticketvalidationfilter"
   class="org.jasig.cas.client.validation.cas20proxyreceivingticketvalidationfilter">
  <property name="servername" value="${client.url}"/>
  <property name="ticketvalidator" ref="cas20serviceticketvalidator"/>
 </bean>
 
 <bean id="cas20serviceticketvalidator" class="org.jasig.cas.client.validation.cas20serviceticketvalidator">
  <constructor-arg value="${cas.url}"/>
  <property name="renew" value="false"/>
 </bean>
 
 <bean id="authenticationfilter" class="org.jasig.cas.client.authentication.authenticationfilter">
  <property name="renew" value="false"/>
  <property name="casserverloginurl" value="${cas.url}"/>
  <property name="servername" value="${client.url}"/>
 </bean>
 
 <bean id="httpservletrequestwrapperfilter" class="org.jasig.cas.client.util.httpservletrequestwrapperfilter"/>
 
 <bean id="assertionthreadlocalfilter" class="org.jasig.cas.client.util.assertionthreadlocalfilter"/>
 
</beans>

properties

?
1
2
3
4
#cas服務(wù)地址
cas.url=https://cas.example.com:8443
#cas客戶端地址,就是本應(yīng)用的地址
client.url=http://localhost:8080

分析

在applicationcontext-security.xml中的security filter chain中,我們使用了5個(gè)filter,分別是:singlesignoutfilter、cas20proxyreceivingticketvalidationfilter、authenticationfilter、httpservletrequestwrapperfilter、assertionthreadlocalfilter。

為什么不用spring-security-cas

spring-security-cas

在spring-security-cas中負(fù)責(zé)ticket validator filter使用的是org.springframework.security.cas.authentication.casauthenticationprovider。

?
1
2
3
4
private casauthenticationtoken authenticatenow(final authentication authentication) throws authenticationexception {
 try {
  final assertion assertion = this.ticketvalidator.validate(authentication.getcredentials().tostring(), getserviceurl(authentication));
  ...

在構(gòu)建validator的validator方法的第二個(gè)參數(shù)時(shí)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private string getserviceurl(authentication authentication) {
 string serviceurl;
 if(authentication.getdetails() instanceof serviceauthenticationdetails) {
  serviceurl = ((serviceauthenticationdetails)authentication.getdetails()).getserviceurl();
 }else if(serviceproperties == null){
  throw new illegalstateexception("serviceproperties cannot be null unless authentication.getdetails() implements serviceauthenticationdetails.");
 }else if(serviceproperties.getservice() == null){
  throw new illegalstateexception("serviceproperties.getservice() cannot be null unless authentication.getdetails() implements serviceauthenticationdetails.");
 }else {
  serviceurl = serviceproperties.getservice();
 }
 if(logger.isdebugenabled()) {
  logger.debug("serviceurl = "+serviceurl);
 }
 return serviceurl;
}

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

原文鏈接:http://atbug.com/spring-security-integrated-with-cas/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一区二区在线不卡 | 欧美在线观看免费观看视频 | 亚洲va国产va天堂va久久 | www.久草| 成人在线免费观看 | 国产精品久久久久久久午夜片 | 亚洲国产精品一区二区第一页 | 日韩视频精品在线 | 亚洲精品电影在线观看 | 亚洲国产精品激情在线观看 | 久久精品国产免费 | 亚洲精品一二三区 | 国产99久久精品一区二区永久免费 | 欧美男人天堂 | 欧美自拍视频 | 久久毛片| 午夜视频在线 | 亚洲成人免费电影 | 不卡久久 | 亚洲视频在线免费观看 | 懂色av一区二区三区 | 成人激情在线播放 | 国产精品久久久久无码av | av网站有哪些 | 成人高清视频在线 | 日韩午夜| 国产91视频在线观看 | 欧美在线观看免费观看视频 | 久久久一区二区精品 | 午夜成人免费影院 | 久久草视频 | 精品一区二区三区免费毛片 | 国产一区二区三区在线视频观看 | 久久福利 | 午夜精品电影 | 精品国产欧美一区二区 | 亚洲天堂一区在线 | 国产精品美女久久久久久久久久久 | 成人亚洲天堂 | 九九热精品视频 | 日韩欧美在线观看 |