文件名称:Roller4.0的另外一套cas简单解决方案
文件大小:381KB
文件格式:RAR
更新时间:2011-12-17 07:57:25
Roller cas
Roller4.0的另外一套cas简单解决方案.
最近在使用roller4.0和cas的单点登录集成.中间碰到了很多很多的问题.也许我碰到的问题都是属于自己的技术不成熟,能力不够引起的.但是我想应该还是有很多人和我是差不多的吧.我把自己碰到的问题和解决方案写出来和大家探讨一下.毕竟网上关于roller4的资料少之又少.对于cas的单点集成就更是少的可怜.我试验了一下roller自带的security.xml配置的cas方案.简直报错的夸张.根本没发用.roller使用的是acegi的用户验证框架.我自己下了一套acegi配置了一下.成功了.同样的方法放到roller里面就挂掉了..(无语中….)所以只好另找方法.
注:下文中所说的如图均在该文所附带的下载包中有相应的word说明.
1.搭建roller的myeclipse环境.
首先搭建roller环境.老实讲.我一直觉得roller的源码下下来有问题.从官网下载下来后的源码会少一些文件.并且里面还有一些文件有错.是不能直接发布在eclipse当中的.但是下面的方法是需要介入到源码的.没有办法.只好采用一些bt的办法了.
首先.我们需要下载roller的源码以及它发布好了的代码.
apache-roller-4.0.zip
apache-roller-src-4.0.zip
在eclipse中新建web项目.比如我新建的web项目为:
说明一下.下载下来的源码是少了一些配置文件的.而且源码里面的pojos包里面的源码是有问题的.这也就是不能发布的主要原因.不过我们做cas集成.不需要改原来的表结构.所以我们可以使用它已经发布了的jar中的pojos包下的类.做法如下:
将apache-roller-src-4.0\apache-roller-src-4.0\apps\weblogger\src\java目录下面的org目录全部copy到自建项目的src目录下面.
然后打开官方提供的可以直接部署的那套发布包(不是源码了哦.!)
将apache-roller-4.0\apache-roller-4.0\webapp\roller\WEB-INF\classes目录下面的除了org目录外的所有文件都copy到自建项目的src目录中.
删除自建项目中:
org\apache\roller\weblogger目录下面的pojos目录及该目录下的所有代码.
因为我们还是需要pojos目录中的代码的.所以要从其他的地方取.
打开官方发布可以直接部署的代码里面的jar,路径为: apache-roller-4.0\webapp\roller\WEB-INF\lib下面的roller-business.jar用winrar打开.
如图:
roller-business.jar,进入到jar里面的roller-business.jar\org\apache\roller\weblogger目录中.删除该目录中除了pojos目录的其他四个目录以及那个webloggerException类.
配置web目录中的内容.
打开官方发布的可直接发布的部署包apache-roller-4.0\apache-roller-4.0\webapp\roller的目录,将该目录下面除了web-inf目录的其他所有文件复制到自建项目的/WebRoot目录下面
自建项目目录结构: (myeclipse建立的web项目应该都有这个目录吧.忽忽.自己看着办吧.)
打开官方发布的可直接发布的部署包apache-roller-4.0\webapp\roller\WEB-INF的目录,复制除了classes目录以外的所有目录到自建项目的WEB-INF目录下面.这里要注意一下.就是lib目录.首先lib目录中我们已经修改了roller-business.jar.删除了除了pojos包下的其他所有的类.我们保留这个jar的原因还有就是在roller-business.jar\META-INF目录中还有两个配置文件需要用到.索性直接导入这个jar.除此之外.,我们还要删除lib下的roller-web.jar.默认的src目录下的所有java文件在官方发布的时候打成了roller-business.jar和roller-web.jar两个jar.所以多余的那个jar我们还是删掉好了.
然后最终搭建出来的目录结构就是这样的:
然后到目前为止.我们就可以使用这个项目来发布了.其他的配置文件修改.什么数据库修改之类的.各位可以参看一下网络的其他资料.多如牛毛.比如cas的配置等等.
下面我主要说一下我改动的地方.
2.与cas的集成.
记得在这里要导入cas需要的客户端jar.我导入的是yale大学的casclient.
我首先试了一下修改roller自带的security.xml配置文件.报错的离谱.还碰到了其他的灵异问题.最灵异的问题是当我打开security.xml的cas配置属性.发布到tomcat时.会影响其他与其共存的与cas集成的系统.这让我好郁闷.这哪里是系统啊..怎么像病毒啊.会导致我其他访问cas的系统无法在得到从cas返回的用户名验证.晕倒.
我的解决方法是直接更改它的登陆页面链接.和登陆链接.
首先修改security.xml.
修改authenticationProcessingFilterEntryPoint节点为下面:
【文件预览】:
Roller4.0的另外一套cas简单解决方案
----logout-redirect.jsp(2KB)
----Roller4.0的另外一套cas简单解决方案.doc(265KB)
----MyloginAction.java(5KB)
----security.xml(14KB)
----Mylogin.properties(335B)
----struts.xml(19KB)
----roller-business.jar(184KB)