`
devroller2
  • 浏览: 34568 次
  • 性别: 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进行二次开发有各种各样的技巧、方法、思路,有的请分享一下!

分享到:
评论

相关推荐

    3DMAX卷曲修改器Roller下载

    在3DMAX中,卷曲修改器是实现复杂动态效果的重要工具,而Roller正是这样一款专为卷曲效果设计的插件。这款插件能够帮助用户轻松创建出卷曲形状的模型,不仅限于静态的造型,还能生成逼真的卷曲和展开的动画效果。 ...

    roller

    标题中的"roller"很可能指的是Apache Roller,一个开源的博客服务器平台。这个平台允许用户创建、管理和发布多个博客,并且提供了丰富的API供开发者扩展其功能。接下来,我们将深入探讨与"roller"相关的技术知识点。...

    roller安装

    《roller安装指南——深入探索源码与工具应用》 在IT行业中,经常需要处理各种开源项目,以便定制、学习或优化。"roller"是一个颇受欢迎的开源博客引擎,它为开发者提供了一个强大的平台来创建、管理和发布个人或...

    Roller初体验

    【标题】:“Roller初体验” 在IT领域,Roller是一款开源的Java博客系统,它提供了丰富的功能,便于用户创建、管理和分享个人或团队的博客内容。本文将围绕Roller的初体验,深入探讨其核心特性,源码结构以及如何与...

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

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

    博客(Blog)-Roller Weblogger ,MeEclipse下搭建

    - Spring Acegi: 用于安全控制,包括认证和授权。 - Roller的配置文件: 包括`roller-custom.properties`和`roller-version.properties`等,允许用户根据需要进行自定义配置。 - 异常处理: `WebloggerException`...

    Apache Roller

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

    Apacheroller

    - SMTP 服务器地址、端口、认证信息等。 - **系统参数**: - 缓存大小、最大并发连接数等。 - **插件配置**: - 启用或禁用特定插件。 - **日志级别**: - 日志记录的详细程度。 了解和掌握 `roller.properties` ...

    roller5 for tomcat

    《Roller 5 for Tomcat:一款便捷的博客平台整合指南》 在互联网技术日新月异的今天,各类Web应用程序层出不穷,其中博客系统作为个人和团队表达思想、分享知识的重要平台,一直受到广泛关注。Roller 5 for Tomcat...

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

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

    roller-weblogger-5.0.0-source.zip

    Roller Weblogger采用了Spring Security(前身是Acegi Security)进行用户认证和授权,确保了系统的安全性。用户权限控制覆盖了登录、访问博客、编辑文章等多个环节。 六、国际化与本地化 项目支持多语言环境,通过...

    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

    apache-roller-4.0.1

    Apache Roller是著名的开源博客系统,主要用于创建、管理和发布Web日志。这个压缩包"apache-roller-4.0.1"包含了Apache Roller的第4.0.1版本,这是一个基于Java技术构建的Web应用程序。接下来,我们将深入探讨Apache...

    roller install、user、template guide

    在IT行业中,"roller"可能是指一个开源项目或者软件工具,但具体信息不足,我们只能根据常规的安装、用户和模板指南来理解这个主题。以下是对这些概念的详细解释: 一、roller install(roller安装指南) 在安装...

Global site tag (gtag.js) - Google Analytics