关于cas优酷客户端下载之间相互调用的问题

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&cas客户端集群无法登出问题 - 简书
下载简书移动应用
写了432字,被0人关注,获得了1个喜欢
cas客户端集群无法登出问题
cas server 广播的登出请求,如果是接收到该请求的客户端是集群客户端,则无法确保集群的客户端能够顺利登出
cas client 1apacheA:tomcatA1:A2:A3:
cas client 2B:
cas server
解决方法说明
集群A有客户端A1,A2,A3。客户端B登出,向cas server发出注销请求, 接着cas server 就会向所有客户端广播登出请求后,假设集群A中的A1接收到请求,如果session在A1,就退出A1就可以,假如session不在A1,由A1广播给集群里面的其他A2,A3,保证集群A可以登出。
1、 web.xml 改写SingleSignOutFilter,SingleSignOutHttpSessionListener替换掉原来的两个类
&!-- cas 单点登出 --&
&filter-name&SingleSignOutFilter&/filter-name&
&filter-class&com.cas.SingleSignOutFilter&/filter-class&
&!-- &filter-class&org.jasig.cas.client.session.SingleSignOutFilter&/filter-class& --&
&filter-mapping&
&filter-name&SingleSignOutFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&listener&
&listener-class&com.cas.SingleSignOutHttpSessionListener&/listener-class&
&!-- &listener-class&org.jasig.cas.client.session.SingleSignOutHttpSessionListener&/listener-class& --&
&/listener&
2、 applicationContext.xml
配置cas客户端集群节点地址,用于cas客户端集群登出 见SingleSignOutFilter
&util:list id="clusterNodeUrls" list-class="java.util.ArrayList"&
&value&:8085&/value&
&value&:8086&/value&
&value&:8087&/value&
&/util:list&
3、 改写的SingleSignOutFilter,SingleSignOutHandler
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
如果你是程序员,或者有一颗喜欢写程序的心,喜欢分享技术干货、项目经验、程序员日常囧事等等,欢迎投稿《程序员》专题。
专题主编:小...
· 165459人关注
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:关于cas单点登录的问题 - 开源中国社区
当前访客身份:游客 [
当前位置:
客户端项目配置cas后,访问所有内容都必须在登录的前提下,如果想不登陆也能访问,只在用户点击登陆或者访问某些特殊内容才跳转到登录该怎么做
cas-server-3.5.2.1 &和&cas-client-3.2.1
客户端web.xml配置如下
&!--单点登出--& &!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 --& &listener& && &listener-class&org.jasig.cas.client.session.SingleSignOutHttpSessionListener&/listener-class& && &/listener& && &!-- 该过滤器用于实现单点登出功能,可选配置。 --& & & && &filter& && &filter-name&CAS Single Sign Out Filter&/filter-name& && &filter-class&org.jasig.cas.client.session.SingleSignOutFilter&/filter-class& && &/filter& &filter-mapping& && &filter-name&CAS Single Sign Out Filter&/filter-name& && &url-pattern&/*&/url-pattern& && &/filter-mapping&
&!-- 该过滤器负责用户的认证工作,必须启用它 --&
&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://casserver:8553/cas/login&/param-value& && & & &/init-param& && & & &init-param& & & & &!--这里的server是服务端的IP--&& & & & & &param-name&serverName&/param-name& && & & & & &param-value&http://casserver:9090/&/param-value& && & & &/init-param& && &/filter& && &filter-mapping& && & & &filter-name&CAS Authentication Filter&/filter-name& && & & &url-pattern&/*&/url-pattern& && &/filter-mapping&
&!-- ValidationFilter& 这个filter负责对请求参数ticket进行验证(ticket参数是负责子系统与CAS进行验证交互的凭证) casServerUrlPrefix:CAS服务访问地址 serverName:当前应用所在的主机名 该过滤器负责对Ticket的校验工作,必须启用它 --& &filter& && & &&filter-name&CAS Validation Filter&/filter-name& && & &&filter-class&org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter&/filter-class& && & &&init-param& && & & & &&param-name&casServerUrlPrefix&/param-name& && & & & &&param-value&https://casserver:8553/cas&/param-value& && & &&/init-param& && & &&init-param& && & & & &&param-name&serverName&/param-name& && & & & &&param-value&http://casserver:9090/&/param-value& && & &&/init-param& && &/filter& && &filter-mapping& && & & &filter-name&CAS Validation Filter&/filter-name& && & & &url-pattern&/*&/url-pattern& && &/filter-mapping&
&!-- HttpServletRequestWrapperFilter& HttpServletRequet的包裹类,让他支持getUserPrincipal,getRemoteUser方法来取得用户信息; 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 --& &filter& && & & &filter-name&CAS HttpServletRequest Wrapper Filter&/filter-name& && & & &filter-class&org.jasig.cas.client.util.HttpServletRequestWrapperFilter&/filter-class& && &/filter& && &filter-mapping& && & & &filter-name&CAS HttpServletRequest Wrapper Filter&/filter-name& && & & &url-pattern&/*&/url-pattern& && &/filter-mapping& & &!-- AssertionThreadLocalFilter& 这个类把Assertion信息放在ThreadLocal变量中,这样应用程序不在web层也能够获取到当前登录信息 Assertion assersion =AssertionHolder.getAssertion(); 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。& 比如AssertionHolder.getAssertion().getPrincipal().getName()。 --& &filter& && & & &filter-name&CAS Assertion Thread Local Filter&/filter-name& && & & &filter-class&org.jasig.cas.client.util.AssertionThreadLocalFilter&/filter-class& && &/filter& && &filter-mapping& && & & &filter-name&CAS Assertion Thread Local Filter&/filter-name& && & & &url-pattern&/*&/url-pattern& && &/filter-mapping&
共有2个答案
<span class="a_vote_num" id="a_vote_num_
可以参考下
<span class="a_vote_num" id="a_vote_num_
改变认证filter的拦截url
--- 共有 5 条评论 ---
我最近发过一段那个代码,你看看
(2年前)&nbsp&
其实就是根据spring webflow新开一个流程,放一个接口出来就行!调用它的验证api就可以乐
(2年前)&nbsp&
改源码,有这方面资料吗?
(2年前)&nbsp&
改cas源码放个接口自定义登录
(2年前)&nbsp&
只拦截部分需要拦截的url是吧?如果想点击登录按钮就在当前页面弹出一个到cas server的登录框怎么做呢
(2年前)&nbsp&
更多开发者职位上
有什么技术问题吗?
白小衣的其它问题
类似的话题9317人阅读
注:以下配置为本人亲测,如有问题请留言;转载请注明:
目录结构如下:
l&&名词解释
l&&测试环境
l&&配置说明
一、生成服务端密钥文件
二、生成服务端证书
三、导入证书文件到cacerts密钥库文件
四、服务端Tomcat配置
五、生成客户端密钥库文件
六、客户端应用配置
七、补充说明
八、常见配置错误
l& 名词解释
单向认证:即CAS服务端采用HTTPS方式访问、客户端应用使用HTTP方式访问。
l& 测试环境
服务端:Windows Server 2008 &#43; JDK1.6 &#43; Tomcat6.0
客户端:Windows XP/WIN7 &#43; JDK1.6 &#43; Tomcat6.0
CAS 服务端版本为 3.5.0,对应客户端jar包版本为 3.2.1
CAS 下载地址:
l& 配置说明
一、&&&& 生成服务端密钥文件
登录服务器打开一个CMD窗口(开始菜单 -& 运行输入cmd后回车)并切换到tomcat安装目录下(如:c:\tomcat-cas),执行如下命令:
keytool -genkey -alias casserver -keypass demosso -keyalg RSA -keystore casserver.keystore -validity 365
执行后,可以看到tomcat安装目录下生成了一个casserver.keystore文件。如下图:
说明:-alias指定别名为casserver;-keyalg指定RSA算法;-keypass指定私钥密码;-keystore指定密钥文件名称为casserver.keystore;-validity指定有效期为365天。另外提示的输入keystore密码应与-keypass指定的相同;您的名字与姓氏是CAS服务器使用的域名(不能是IP,也不能是localhost),其它项随意填。
注意:服务器上如果有多个JDK,请确认环境变量中的JDK路径为tomcat所使用的JDK,如果不在环境变量中,也可切换到指定JDK的bin目录下执行命令;提示的输入keystore密码应与-keypass必须与指定的相同,否则后面tomcat启动会报IO异常(Cannot recover key)。
二、&&&& 生成服务端证书
根据以上生成的服务端的密钥文件可以导出服务端证书,执行以下命令:
keytool -export -alias casserver -storepass demosso -file casserver.cer -keystore casserver.keystore
执行后,可以看到tomcat安装目录下生成了一个casserver.cer文件。如下图:
说明:-alias指定别名为casserver;-storepass指定私钥为demosso;-file指定导出证书的文件名为casserver.cer;-keystore指定之前生成的密钥文件的文件名。
注意:-alias和-storepass必须为生成casserver.keystore密钥文件时所指定的别名和密码,否则证书导出失败,报如下错误:
三、&&&& 导入证书文件到cacerts 密钥库文件
导入以上生成的服务端的证书文件到一个cacerts密钥库文件,执行以下命令:
keytool -import -trustcacerts -alias casserver-storepass demosso& -file casserver.cer–keystore cacerts
执行后,可以看到tomcat安装目录下生成了一个cacerts文件。如下图:
四、&&&& 服务端Tomcat配置
在制作完成密钥文件、证书文件、密钥库文件后即可进行服务端Tomcat的配置。打开$CATALINA_HOME/conf/server.xml文件,注释掉如下代码段:
&Connector port=&80&protocol=&HTTP/1.1& connectionTimeout=&20000& redirectPort=&8443&/&
并取消注释&Connectorport=&8443& protocol=&HTTP/1.1& SSLEnabled=&true&…/&代码段,修改后如下:
说明:port一般为,最常用的是443端口(https默认端口),这样https方式访问的时候可以不加端口号(如:);keystoreFile为tomcat目录下的密钥文件;keystorePass为私钥密码;truststoreFile为生成的信任文件,如果此处不指定则默认为$JAVA_HOME/jre/lib/security/cacerts文件;其它属性默认即可。
五、&&&& 生成客户端密钥库文件
单向认证的客户端配置只需生成客户端信任文件caserts即可。首先将服务端生成的证书文件(之前生成的casserver.cer文件)复制到$JAVA_HOME/jre/lib/security下,然后打开CMD窗口切换到$JAVA_HOME/jre/lib/security下并执行命令:
keytool -import -trustcacerts -alias casclient-storepass ssoclient -file casserver.cer -keystore cacerts
执行后,可以看到$JAVA_HOME/jre/lib/security目录下生成了一个cacerts文件。如下图:
六、&&&& 客户端应用配置
1、应用程序WEB-INF\lib目录下加入cas-client-core-3.2.1.jar包并添加到buildpath中;
2、编辑应用程序中的web.xml文件在最末端加入如下内容:
&filter-name&CAS Single Sign Out Filter&/filter-name&
&filter-class&org.jasig.cas.client.session.SingleSignOutFilter&/filter-class&
&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&/cas/login&/param-value&
&/init-param&
&init-param&
&param-name&renew&/param-name&
&param-value&false&/param-value&
&/init-param&
&init-param&
&param-name&gateway&/param-name&
&param-value&false&/param-value&
&/init-param&
&init-param&
&param-name&serverName&/param-name&
&param-value&http://192.68.69.75:80&/param-value&
&/init-param&
&filter-name&CASValidation Filter&/filter-name&
&filter-class&org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter&/filter-class&
&init-param&
&param-name&casServerUrlPrefix&/param-name&
&param-value&/cas&/param-value&
&/init-param&
&init-param&
&param-name&serverName&/param-name&
&param-value&http://192.68.69.75:80&/param-value&
&/init-param&
&init-param&
&param-name&useSession&/param-name&
&param-value&true&/param-value&
&/init-param&
&init-param&
&param-name&redirectAfterValidation&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-name&CAS HttpServletRequest WrapperFilter&/filter-name&
&filter-class&org.jasig.cas.client.util.HttpServletRequestWrapperFilter&/filter-class&
&filter-name&LoginFilter&/filter-name&
&filter-class&demo.filter.LoginFilter&/filter-class&
&filter-mapping&
&filter-name&CAS Single Sign Out Filter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&filter-mapping&
&filter-name&CAS Authentication Filter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&filter-mapping&
&filter-name&CAS Validation Filter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&filter-mapping&
&filter-name&CAS HttpServletRequest WrapperFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&filter-mapping&
&filter-name&LoginFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
说明:LoginFilter内容一般为获取用户基本信息、菜单信息然后保存到session中;为CAS服务器的域名,也就是之前使用keytool –genkey命令指定的“名字与姓氏”。若未申请域名,也可以本地模拟实现域名解析,编辑C:\WINDOWS\system32\drivers\etc\hosts文件添加:CAS服务器IP &&即可),如下图:
注意:serverName属性&#20540;为客户端实际IP地址,可以为域名但绝不能为localhost!
1、&&&客户端程序单点退出功能,需要访问,下面提供了一个示例,当点击退出按钮(或超链接)时,调用javascript方法ssoLogout()。ssoLogout()定义如下(可根据实际需求自行修改):
&scripttype=&text/javascript&&
function ssoLogout(){
if(confirm('确定要退出系统吗?')){
top.location.href ='/cas/logout?service='+location.protocol+'//'+location.host+location.
七、&&&& 补充说明
上面讲的是CAS单独部署的情况,也就是与其它应用分开部署。但有些情况是CAS与其它应用部署到同一台机器同一个Tomcat(关键问题是使用同一个JDK),这种情况下,服务端Tomcat配置中的&Connector truststoreFile属性就要指定为jdk下的cacerts文件路径或者直接注释掉(默认会找$JAVAHOME\jre\lib\security\下的cacerts文件)。这样服务端和客户端是同一个,也就不必再根据服务端证书生成客户端密钥库文件了。
八、&&&& 常见配置错误
1、& CAS服务端Tomcat启动后报错:Error initializing endpoint java.io.IOException: Cannot recover key
是由于生成服务端密钥文件时所指定的keypass与提示输入的“keystore密码”不一致。
2、& javax.servlet.ServletException: org.jasig.cas.client.validation.TicketValidationException:绁ㄦ牴'ST-2-hozuLnLtIVGeaD5yju0Y-cas'涓嶇&#57537;鍚堢洰鏍囨湇鍔?
一般是由于客户端应用web.xml中配置的serverName属性&#20540;为localhost或CAS服务端cas-servlet.xml配置文件中的&bean logoutController/&没加p:followServiceRedirects=&true&退出后重定向属性。
3、& SSLHandshakeException: java.security.cert.CertificateException: Nosubject alternative names present
是由于客户端应用web.xml配置中的casServerLoginUrl和casServerUrlPrefix两个URL属性的域名与证书中定义的不一致。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:108976次
积分:1203
积分:1203
排名:千里之外
原创:19篇
评论:28条
(1)(1)(3)(3)(2)(2)(1)(1)(1)(1)(5)(1)

我要回帖

更多关于 优酷客户端下载 的文章

 

随机推荐