roller使用acegi做为其认证模块,acegi是比较成功的一个安全与认证模块,相信很多项目中都有使用到。但是有些项目有自己的认证模块又想集成roller做二次开发,这时可能acegi是必须砍掉的。
下面说说如何简单去掉acegi,呵呵,不是很彻底!
通过搜索roller源代码,发现好几个类引用到acegi的东西,导致roller跟acegi耦合太强!roller启动时RollerContext必须被加载,这个类继承spring的ContextLoaderListener,所以roller启动的时候会去加载spring的配置文件。不想说那么多了,先说怎么做吧。
1、在RollerContext类中注释掉
initializeSecurityFeatures(servletContext);
2、写一个Filter实现类,增加登陆逻辑处理。
public class AgFilter implements Filter{
private static Log log = LogFactory.getLog(AgFilter.class);
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
RollerSession rs = RollerSession
.getRollerSession((HttpServletRequest) req);
HttpServletRequest hs = (HttpServletRequest) req;
//认证逻辑处理
if (hs.getServletPath().indexOf("roller_j_security_check") > -1) {
String userName = req.getParameter("j_username");
try {
UserManager umgr = WebloggerFactory.getWeblogger()
.getUserManager();
User user = umgr.getUserByUserName(userName);
rs.setAuthenticatedUser(user);
req.getRequestDispatcher("/roller-ui/login-redirect.jsp").forward(req, res);
return ;
} catch (WebloggerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
chain.doFilter(req, res);
}
public void destroy() {
}
public void init(FilterConfig arg0) throws ServletException {
}
}
3、修改web.xml去掉acegi的filter
<filter>
<filter-name>securityFilter</filter-name>
<filter-class>org.apache.roller.weblogger.ui.core.filters.AgFilter</filter-class>
<!-- <init-param>-->
<!-- <param-name>targetClass</param-name>-->
<!-- <param-value>org.acegisecurity.util.FilterChainProxy</param-value>-->
<!-- </init-param>-->
</filter>
基本上这样就可以了。虽然roller启动时会加载一些acegi的东西,但我们没有用到也就无所谓了。这样是最简单的也是不彻底的。
相信利用roller进行二次开发有各种各样的技巧、方法、思路,有的请分享一下!
分享到:
相关推荐
根本没发用.roller使用的是acegi的用户验证框架.我自己下了一套acegi配置了一下.成功了.同样的方法放到roller里面就挂掉了..(无语中….)所以只好另找方法. 注:下文中所说的如图均在该文所附带的下载包中有相应的...
NULL 博文链接:https://moving200x.iteye.com/blog/1749902
Apache Roller是一个全功能,多用户和组博客服务器,适合大型和小型博客网站。它运行一个Java Web应用程序应该能够运行在任何Java EE服务器和关系数据库。目前,Apache Roller能很好的支持Tomcat和MySQL。 本人用...
Safety evaluation of table liner for vertical roller mill by modified fatigue limit
Roller 是一个全功能的多用户博客平台,于2002年首发,采用Java语言开发,设计精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS ...
apache-roller-srapaapache-roller-srcche-roller-srccapache-rolaapache-roller-srcpache-roller-srcler-srcapapache-roller-srcache-roller-srcapache-roller-src
apache-rollapachapache-roller-srce-roller-srcer-srcapache-rolleapacapache-roller-srche-roller-srcr-srcapache-roapache-roller-srcller-srcapache-roller-src
apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src
apache roller安装指南电子书 翻译官方roller安装帮助文档
NULL 博文链接:https://jarorwar.iteye.com/blog/554942
roller install guide roller user guide roller template guide
Roller 是一个全功能的多用户博客平台,于2002年首发,采用Java语言开发,设计精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS ...
weblogging 设计比较精巧,是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。 最主要是其开源
install the roller 讲述怎样使用roller