`
devroller2
  • 浏览: 33756 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何去掉roller的认证模块acegi

阅读更多

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进行二次开发有各种各样的技巧、方法、思路,有的请分享一下!

分享到:
评论

相关推荐

    Roller4.0的另外一套cas简单解决方案

    根本没发用.roller使用的是acegi的用户验证框架.我自己下了一套acegi配置了一下.成功了.同样的方法放到roller里面就挂掉了..(无语中….)所以只好另找方法. 注:下文中所说的如图均在该文所附带的下载包中有相应的...

    roller

    NULL 博文链接:https://moving200x.iteye.com/blog/1749902

    Apache Roller

    Apache Roller是一个全功能,多用户和组博客服务器,适合大型和小型博客网站。它运行一个Java Web应用程序应该能够运行在任何Java EE服务器和关系数据库。目前,Apache Roller能很好的支持Tomcat和MySQL。 本人用...

    Safety evaluation of table liner for vertical roller mill

    Safety evaluation of table liner for vertical roller mill by modified fatigue limit

    开源Java博客Roller v5.0 for tomcat.zip

    Roller 是一个全功能的多用户博客平台,于2002年首发,采用Java语言开发,设计精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS ...

    roller-part01

    apache-roller-srapaapache-roller-srcche-roller-srccapache-rolaapache-roller-srcpache-roller-srcler-srcapapache-roller-srcache-roller-srcapache-roller-src

    roller-part2

    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-src

    roller安装指南电子书

    apache roller安装指南电子书 翻译官方roller安装帮助文档

    roller安装

    NULL 博文链接:https://jarorwar.iteye.com/blog/554942

    roller install、user、template guide

    roller install guide roller user guide roller template guide

    开源Java博客Roller v5.0 for tomcat

    Roller 是一个全功能的多用户博客平台,于2002年首发,采用Java语言开发,设计精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS ...

    roller-weblogger.rar

    weblogging 设计比较精巧,是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。 最主要是其开源

    Apacheroller

    install the roller 讲述怎样使用roller

Global site tag (gtag.js) - Google Analytics