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>
分享到:
- 2006-10-19 19:20
- 浏览 4449
- 评论(1)
- 论坛回复 / 浏览 (1 / 4788)
- 查看更多
相关推荐
本文将深入探讨基于RBAC(Role-Based Access Control)模式的Acegi权限管理,它是在Spring框架上的一个经典实现。RBAC是一种广泛采用的权限模型,通过角色来分配权限,有效地实现了用户与权限之间的间接关联,降低了...
Spring Acegi权限控制是Spring框架中用于实现Web应用安全的一种解决方案。Acegi Security(现已被Spring Security替代)是一个功能强大的安全框架,它主要解决了认证(Authentication)和授权(Authorization)这两...
总的来说,这个"最简单acegi权限管理实例"是一个很好的学习起点,通过实践可以了解Acegi的基本用法,包括用户认证、权限控制、配置文件的理解以及如何与Spring框架集成。在实际项目中,我们需要根据需求进行更复杂的...
部署方面,"acegi-demo"项目表明这是一个演示示例,可能包含了预配置的Acegi安全设置和必要的依赖库。为了在Tomcat服务器上运行,你需要确保Tomcat版本与Acegi兼容,并且正确地设置了`WEB-INF/web.xml`中的Spring和...
### acegi+SSH动态实现基于角色的权限管理 在企业级应用开发中,权限管理和用户认证是必不可少的安全机制。本文将详细介绍如何利用Acegi安全框架(现称为Spring Security)结合SSH(Struts + Spring + Hibernate)...
<br>真正高效的acegi权限配置,有效为你节省大量时间,因为你不需要再花费大量时间耗费在网络上查找“关于acegi的配置”; <br>acegi中高级配置在后文将陆续推出,敬请时刻关注; <br>下载资源仅需4分,相信你...
Acegi Security,现已被Spring Security所取代,是Java EE应用程序中的一个强大且灵活的权限管理框架。它提供了全面的身份验证、授权和访问控制功能,旨在确保企业级应用的安全性。Acegi通过AOP(面向切面编程)的...
Acegi权限控制学习笔记 Acegi安全框架是Spring Security的前身,它提供了一种强大的、灵活的、基于组件的安全解决方案,用于实现企业级应用的安全控制。在这个学习笔记中,我们将探讨两个关键点:身份认证成功后的...
综上所述,"batis+acegi实现的动态权限控制"是一个涉及MyBatis和Acegi Security集成的项目,目的是构建一个能够根据用户角色和权限动态调整访问控制的系统。在实际操作中,需要对这两个组件有深入理解,并进行适当的...
- **运行示例**:可能是一个可以直接运行的示例应用,让我们可以直接观察Acegi权限管理的运作。 通过学习和分析这些资源,开发者不仅可以了解Acegi的安全机制,还能学会如何在实际项目中实施权限控制,提升应用的...
如何定义spring security的安全认证框架,对url和系统类method进行过滤以及权限分配和控制
在本实例中,我们将深入探讨如何使用Acegi来控制用户的权限。Acegi Security已经被Spring Security替代,但其核心思想和机制仍然适用于现代的Spring Security。 首先,我们需要理解Acegi的基础概念。Acegi的核心是`...
Acegi安全权限管理手册是一本全面介绍Acegi安全框架在权限管理方面应用的权威指南。Acegi Security是Spring框架的一个扩展,它为Java应用程序提供了强大的安全性和权限控制功能。在这个手册中,读者将深入理解如何...
- **授权(Authorization)**:Acegi 提供细粒度的权限控制,允许开发者根据角色、URL路径、方法参数等进行权限配置,实现不同级别的访问控制。 - **会话管理(Session Management)**: Acegi 可以监控和管理用户...
5. **权限动态化** 动态权限管理意味着权限可以根据业务需求进行动态调整,而不是硬编码在代码中。这可以通过Acegi的`AccessDecisionManager`和`AccessDecisionVoter`接口实现。例如,可以通过后台管理系统动态添加...
Acegi Java权限验证框架是Spring Security的前身,它是一个强大且灵活的安全框架,用于Java企业级应用程序。这个框架提供了一套完整的解决方案,包括用户认证、访问控制、安全配置以及会话管理等多个方面,旨在帮助...
在实际应用中,AceGI的配置通常在Spring的配置文件中完成,通过定义SecurityContextHolder策略、定义安全过滤器链、设置认证和授权策略等。开发者还可以通过实现自定义的UserDetailsService接口来获取和验证用户信息...
这个文档可能涵盖了从添加依赖、配置安全设置到编写自定义逻辑的所有步骤,是学习和实践ACEGI Security的关键资源。 通过以上内容,我们可以看出ACEGI Security为Java Web应用提供了全面的安全保障。它不仅简化了...