日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

为sakai配置单点登录

發布時間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为sakai配置单点登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sakai:2.7.1
cas-server:3.4.3.1
cas-client:3.1.12

關于sakai如何配置單點登錄官方有一篇教程,http://confluence.sakaiproject.org/display/~steve.swinsburg/CASifying+Sakai.不過里面使用的cas-client版本較低,目前cas官方最新版本已經是3.1.12。新版本和老版本差異極大,不可能再按照sakai官方給出的教程來配置cas,所以要么使用老版本的cas,要么去cas官方查看文檔自己進行配置。我使用了3.1.12版本,為了便于以后查閱,特將配置過程記錄下來。
通過web.xml進行配置:
通過編輯/webapp/sakai-login-tool/web-inf/web.xml文件添加如下filter:
首先配置Authentication Filter

<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://yourdomain:port/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://yourdomain:port/client</param-value>
</init-param>
</filter>

接著配置Validation Filter

<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://yourdomain:port/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://yourdomain:port/clietn</param-value>
</init-param>
</filter>

然后配置HttpServletRequestWrapperFilter

<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>

最后配置AssertionThreadLocalFilter

<filter>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>

可以看出配置實際上是挺簡單的,和使用老版本其實差不多,只是對filter類的引用不同。需要指出的是上面filter的順序是不可以改變的,另外第一步,第二步可以有多種選擇,cas提供了多個不同的filter,具體可以參考官方文檔。除了為web.xml添加相應的filter以外,還要配置sakai.properties文件,具體如下:

login.use.xlogin.to.relogin=false
top.login=false
container.login = true
loggedOutUrl=http://localhost:8080/cas/logout?service=http://localhost:8080

#如果同時使用cas登錄和sakai內部登錄,可以添加如下配置
xlogin.text=Login
xlogin.enabled=true

配置到這里基本已經完成,但是如果你直接使用cas-server中的war包,可能會遇到退出后不能跳轉到指定的頁面,這時需要修改下cas-server的配置:

<bean id="logoutController" class="org.jasig.cas.web.LogoutController"
p:centralAuthenticationService-ref="centralAuthenticationService"
p:logoutView="casLogoutView"
p:warnCookieGenerator-ref="warnCookieGenerator"
<!--添加followServiceRedirects-->
p:followServiceRedirects="true"
p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator" />

注意使用的cas帳戶必須存在于sakai中,否則無法正常登錄。

詳細參考cas官方文檔:https://wiki.jasig.org/display/CASUM/Home

cas-client 3.1配置:https://wiki.jasig.org/display/CASC/CAS+Client+for+Java+3.1

到這一步對于cas的配置久涮完成了,當然如果需要實現單點登出則還需要進行一些配置,這里就不寫出來了,官方有相應的文檔。

對cas進行相應配置后,還需要配置ssl,如果不是安全連接,cas就不會發布TGC。如何配置ssl就不贅述了,網上有很多資料,這里

將我遇到的一個問題記錄一下:

我的sakai和cas服務器是在統一個tomcat里,而另外一個web服務在別的機器上,在配置完成后發現會拋出如下異常

PKIX path building failed: unable to find valid certification path to requested target

雖然知道是數字簽名的問題,但是實在不知到如何解決,后來在網上查到需要將數字簽名導入,于是將有cas的數字簽名通過如下命令導入到
另一臺機子,才解決了問題。

keytool -import -trustcacerts -alias cng_domain -file cas.crt -keystore % $JAVA_HOME/jre/lib/scurity/cacerts

[思開社區 [url]http://www.sakai-edu.net[/url]]

總結

以上是生活随笔為你收集整理的为sakai配置单点登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。