为sakai配置单点登录
生活随笔
收集整理的這篇文章主要介紹了
为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]]
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配置单点登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 用vsftpd 配置FTP
- 下一篇: 详细的vsftpd配置文件讲解