`
quaff
  • 浏览: 13234 次
  • 性别: Icon_minigender_1
  • 来自: 天朝
文章分类
社区版块
存档分类
最新评论

动态配置Acegi权限

阅读更多
AbstractRefreshableTargetSource在spring2.0里面才有

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.acegisecurity.intercept.web.FilterInvocationDefinitionSourceEditor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceEditor;

public class RefreshableFileFilterInvocationDefinition extends
		AbstractRefreshableTargetSource {
	protected Log logger = LogFactory.getLog(getClass());
	public static final String DEFAULT_LOCATION = "classpath:acegi-filterInvocation.conf";
	private String location = DEFAULT_LOCATION;
	public String getLocation() {
		return location;
	}
	public void setLocation(String location) {
		this.location = location;
	}
	protected Object freshTarget() {
		ResourceEditor editor = new ResourceEditor();
		editor.setAsText(getLocation());
		Resource resource = (Resource) editor.getValue();
		if (resource == null) {
			logger
					.warn("Can't find a Acegi FilterInvocationDefinition config file");
			return null;
		}
		StringBuffer sb = new StringBuffer();
		char[] cbuf = new char[100];
		int read;
		InputStream is = null;
		InputStreamReader isr = null;
		try {
			is = resource.getInputStream();
			isr = new InputStreamReader(is);
			while ((read = (isr.read(cbuf, 0, cbuf.length))) != -1)
				sb.append(cbuf, 0, read);
			logger.info("loaded Acegi FilterInvocationDefinition config file");
		} catch (IOException e) {
			logger.warn(e.getMessage(), e);
		} finally {
			try {
				if (isr != null)
					isr.close();
				if (is != null)
					is.close();
			} catch (IOException e) {
				logger.warn(e.getMessage(), e);
			}
		}
		FilterInvocationDefinitionSourceEditor configEditor = new FilterInvocationDefinitionSourceEditor();
		configEditor.setAsText(sb.toString());
		return configEditor.getValue();
	}

}


acegi的spring配置文件

<bean id="filterInvocationInterceptor"
class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager"
ref="authenticationManager" />
<property name="accessDecisionManager"
ref="httpRequestAccessDecisionManager" />
<property name="objectDefinitionSource"
ref="objectDefinitionSource" />
</bean>

<bean id="refreshableFileFilterInvocationDefinition"
class="RefreshableFileFilterInvocationDefinition">
<property name="location" value="file:///${webapp.root}/WEB-INF/acegi-filterInvocation.conf"/>
<!-- 自动刷新
<property name="refreshCheckDelay" value="60000"/>
-->
</bean>

<bean id="objectDefinitionSource"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="targetSource"
ref="refreshableFileFilterInvocationDefinition" />
</bean>


也可以用dwr来手动刷新,并且配置权限,role是在acegi里面配置的

<create creator="spring" javascript="FilterInvocationDefinition"
scope="application">
<param name="beanName" value="refreshableFileFilterInvocationDefinition" />
<auth method="refresh" role="ROLE_SUPERVISOR"/>
<include method="refresh" />
</create>
分享到:
评论
1 楼 quaff 2006-10-19  
acegi-filterInvocation.conf

CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/styles*=ROLE_ANONYMOUS
/scripts*=ROLE_ANONYMOUS 
/images*=ROLE_ANONYMOUS
/test*=ROLE_ANONYMOUS
/login.action*=ROLE_ANONYMOUS
/switchuser.action=ROLE_SUPERVISOR
/j_acegi_switch_user=ROLE_SUPERVISOR
/exituser.action=ROLE_PREVIOUS_ADMINISTRATOR
/j_acegi_exit_user=ROLE_PREVIOUS_ADMINISTRATOR
/**=ROLE_USER

相关推荐

    基于rbac模式的acegi权限管理

    本文将深入探讨基于RBAC(Role-Based Access Control)模式的Acegi权限管理,它是在Spring框架上的一个经典实现。RBAC是一种广泛采用的权限模型,通过角色来分配权限,有效地实现了用户与权限之间的间接关联,降低了...

    Spring Acegi权限控制

    Spring Acegi权限控制是Spring框架中用于实现Web应用安全的一种解决方案。Acegi Security(现已被Spring Security替代)是一个功能强大的安全框架,它主要解决了认证(Authentication)和授权(Authorization)这两...

    最简单acegi权限管理实例

    总的来说,这个"最简单acegi权限管理实例"是一个很好的学习起点,通过实践可以了解Acegi的基本用法,包括用户认证、权限控制、配置文件的理解以及如何与Spring框架集成。在实际项目中,我们需要根据需求进行更复杂的...

    acegi 权限控制按钮

    部署方面,"acegi-demo"项目表明这是一个演示示例,可能包含了预配置的Acegi安全设置和必要的依赖库。为了在Tomcat服务器上运行,你需要确保Tomcat版本与Acegi兼容,并且正确地设置了`WEB-INF/web.xml`中的Spring和...

    acegi+ssh动态实现基于角色的权限管理

    ### acegi+SSH动态实现基于角色的权限管理 在企业级应用开发中,权限管理和用户认证是必不可少的安全机制。本文将详细介绍如何利用Acegi安全框架(现称为Spring Security)结合SSH(Struts + Spring + Hibernate)...

    acegi权限控制与数据库配置在SSH中的初级使用

    &lt;br&gt;真正高效的acegi权限配置,有效为你节省大量时间,因为你不需要再花费大量时间耗费在网络上查找“关于acegi的配置”; &lt;br&gt;acegi中高级配置在后文将陆续推出,敬请时刻关注; &lt;br&gt;下载资源仅需4分,相信你...

    权限Acegi的使用

    Acegi Security,现已被Spring Security所取代,是Java EE应用程序中的一个强大且灵活的权限管理框架。它提供了全面的身份验证、授权和访问控制功能,旨在确保企业级应用的安全性。Acegi通过AOP(面向切面编程)的...

    acegi权限控制学习笔记

    Acegi权限控制学习笔记 Acegi安全框架是Spring Security的前身,它提供了一种强大的、灵活的、基于组件的安全解决方案,用于实现企业级应用的安全控制。在这个学习笔记中,我们将探讨两个关键点:身份认证成功后的...

    batis+acegi实现的动态权限控制

    综上所述,"batis+acegi实现的动态权限控制"是一个涉及MyBatis和Acegi Security集成的项目,目的是构建一个能够根据用户角色和权限动态调整访问控制的系统。在实际操作中,需要对这两个组件有深入理解,并进行适当的...

    Acegi解决权限问题

    - **运行示例**:可能是一个可以直接运行的示例应用,让我们可以直接观察Acegi权限管理的运作。 通过学习和分析这些资源,开发者不仅可以了解Acegi的安全机制,还能学会如何在实际项目中实施权限控制,提升应用的...

    关于web spring acegi 权限配置xml

    如何定义spring security的安全认证框架,对url和系统类method进行过滤以及权限分配和控制

    使用acegi控制用户权限实例

    在本实例中,我们将深入探讨如何使用Acegi来控制用户的权限。Acegi Security已经被Spring Security替代,但其核心思想和机制仍然适用于现代的Spring Security。 首先,我们需要理解Acegi的基础概念。Acegi的核心是`...

    Acegi安全权限管理手册

    Acegi安全权限管理手册是一本全面介绍Acegi安全框架在权限管理方面应用的权威指南。Acegi Security是Spring框架的一个扩展,它为Java应用程序提供了强大的安全性和权限控制功能。在这个手册中,读者将深入理解如何...

    acegi

    - **授权(Authorization)**:Acegi 提供细粒度的权限控制,允许开发者根据角色、URL路径、方法参数等进行权限配置,实现不同级别的访问控制。 - **会话管理(Session Management)**: Acegi 可以监控和管理用户...

    动态实现基于角色的权限管理(Acegi+hibernate )

    5. **权限动态化** 动态权限管理意味着权限可以根据业务需求进行动态调整,而不是硬编码在代码中。这可以通过Acegi的`AccessDecisionManager`和`AccessDecisionVoter`接口实现。例如,可以通过后台管理系统动态添加...

    acegi java权限验证框架ppt讲座和代码

    Acegi Java权限验证框架是Spring Security的前身,它是一个强大且灵活的安全框架,用于Java企业级应用程序。这个框架提供了一套完整的解决方案,包括用户认证、访问控制、安全配置以及会话管理等多个方面,旨在帮助...

    acegi实现用户权限

    在实际应用中,AceGI的配置通常在Spring的配置文件中完成,通过定义SecurityContextHolder策略、定义安全过滤器链、设置认证和授权策略等。开发者还可以通过实现自定义的UserDetailsService接口来获取和验证用户信息...

    集成ACEGI 进行权限控制.rar

    这个文档可能涵盖了从添加依赖、配置安全设置到编写自定义逻辑的所有步骤,是学习和实践ACEGI Security的关键资源。 通过以上内容,我们可以看出ACEGI Security为Java Web应用提供了全面的安全保障。它不仅简化了...

Global site tag (gtag.js) - Google Analytics