CAS 3.2.1 内外网映射问题的解决办法
一般项目绝大数都是部署于某一个网络,要吗在内网,要不在外网,部署在内网的目
前很多都通过 VPN 进行内网的访问。但对于一些项目是部署在内网,然后通过网络路由映
射方式进行外网的访问,一般情况如果是通过自己开发的登陆此问题不需要进行任何改动
而当您使用了通用的 CAS 统一认证服务时,由于 WEB 应用工程中 web.xml 配置的 CAS 地址
是固定的,而不是一个动态的地址,当将 WEB 应用服务器例如 TOMCAT 端口映射外网后,
在访问应用时会自动根据在 web.xml 文件中去配置对应的 CAS 地址,而此时的地址只能是
内网使用,外网自然无法找到,则无法登陆,而由于项目的本身需要,必须要同时内外网
都能访问,而应用已使用了 CAS 再来变更带来一些不便,同时 CAS 统一认证方面安全性还
是较为有优势的,根据这一情况,前期进行了大量的咨询,都没能找得很好的解决办法,
对于公司内部也无人能够解决,后通过百度搜索到了大量信息,并进行了测试,发现很多
都无法满足自己的需要,后在无意中发现 CNBlogs 的一位作者名为 BeerFuture 的在自己博
文中对 CAS 内外网功能的一个介绍,但由于没有进行全部的解说和一些代码的问题,并未
能成功解决,后联系上了作者,并在其指导下完成自己的项目内网外功能,在此本人根据
自己项目的情况进行了一次总结,以便于帮助更多的人;本案例以 CAS-Client-3.2.1 为例进
行说明,对应的服务端为 CAS-Server-3.5.2,目前客户端最新的为 CAS-Client-3.3.3,对应
CAS-Server-4.0 以上,其不同版本源码虽有所改变,但此方法仍适用,可以直接用于 CAS-
Client-3.3.3 版本。
第一步,首先要先下载 cas-client-3.2.1-release.zip 源文件,使用压缩软件打开,其中
cas-client-core 即 为 cas-client-core-3.2.1.jar 的 源 代 码 , 其 下 载 地 址 为 : hp://
developer.jasig.org/cas-clients/
第 二 步 , 将 解 压 的 cas-client-core 目 录 导 入 到 Eclipse 或 MyEclipse 工 程 中 , 建 立
JavaProject,生成.project 和.classpath 文件,即可开始源代码的修改工作,目前这些源代码
工程都是使用 Maven 来构建的,关于 Maven 不在本文范畴故而不再赘述!
第三步,修改源代码,新增工具类,以实现内外网的访问,当完成上述导入后,在
Eclipse 或 MyEclipse 中的目录结构应如下:
第四步,在 下继续新增工具类 代码如下
评论9