- 浏览: 548909 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
coosummer:
推荐使用http://buttoncssgenerator.c ...
【转载】CSS圆角按钮(一) -
saiarmuluo:
不错,支持。
java log4j日志 写入数据库 -
springdata_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
Freemarker 使用 -
zlbdexiaohao:
棒棒的
flex ToolTip汇总 -
hw_128:
demo的代码的,能不能发一下,谢谢 qq257515270 ...
java log4j日志 写入数据库
//数据库脚本:mysql.sql
DROP DATABASE IF EXISTS sampledb;
CREATE DATABASE sampledb DEFAULT CHARACTER SET utf8;
USE sampledb;
CREATE TABLE T_USER (
USER_ID INTEGER NOT NULL AUTO_INCREMENT,
USERNAME VARCHAR(30) NOT NULL,
PASSWORD VARCHAR(30) DEFAULT NULL,
STATUS TINYINT(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`USER_ID`),
UNIQUE KEY `USERNAME` (`USERNAME`)
);
CREATE TABLE T_USER_PRIV (
USER_ID INTEGER NOT NULL DEFAULT '0',
PRIV_NAME VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (USER_ID, PRIV_NAME)
);
INSERT INTO T_USER (USER_ID, USERNAME, PASSWORD, STATUS) VALUES
(1,'tom','tom',1),
(2,'john','john',1);
INSERT INTO T_USER_PRIV (USER_ID, PRIV_NAME) VALUES
(1,'PRIV_1'),
(1,'PRIV_2'),
(1,'PRIV_COMMON'),
(2,'PRIV_1'),
(2,'PRIV_COMMON');
COMMIT;
在web.xml中配置信息
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param> <!-- 指定配置文件的相对位置 -->
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml,
classpath:applicationContext-acegi-plugin.xml
</param-value>
</context-param>
<filter> <!-- 创建Acegi 安全过滤器的的代理对象 -->
<filter-name>AcegiFilterChainProxy</filter-name>
<filter-class>
org.acegisecurity.util.FilterToBeanProxy
</filter-class>
<!-- org.acegisecurity.util.FilterChainProxy 这个对象将在spring的配置文件中 -->
<init-param>
<param-name>targetClass</param-name>
<param-value>
org.acegisecurity.util.FilterChainProxy
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>AcegiFilterChainProxy</filter-name>
<url-pattern>/*</url-pattern> <!-- 这个过滤器将拦截所有请求 -->
</filter-mapping>
<listener> <!-- Spring的上下文的监听器 -->
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.acegisecurity.ui.session.HttpSessionEventPublisher
</listener-class>
</listener>
<!--session 超时定义-->
<session-config>
<session-timeout>60</session-timeout>
</session-config>
<!--默认首页定义-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
下面我们来看看spring的配置文件
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--
/**=channelProcessingFilter,httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,concurrentSessionFilter,filterInvocationInterceptor
-->
<!-- 创建代理对象 -->
<bean id="filterChainProxy"
class="org.acegisecurity.util.FilterChainProxy">
<property name="filterInvocationDefinitionSource">
<value>
CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT /**=channelProcessingFilter,httpSessionContextIntegrationFilter,authenticationProcessingFilter,logoutFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,concurrentSessionFilter,filterSecurityInterceptor
</value>
</property>
</bean>
<!--CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISON表示的是判读的是URL 而 PATTERN_TYPE_APACHE_ANT 表示是的使用的是ANT的路径风格进行配置匹配的URL 如果不写Acgi将使用正则表达式来解析这个URL 这个地方不要使用会出或换行 -->
<!-- authenticationProcessingFilter 使用认证的处理器过滤匹配的URL -->
<!--
每次request前 HttpSessionContextIntegrationFilter从Session中获取Authentication对象,在request完后
又把Authentication对象保存到Session中供下次request使用,此filter必须其他Acegi filter前使用
-->
<bean id="httpSessionContextIntegrationFilter"
class="org.acegisecurity.context.HttpSessionContextIntegrationFilter" />
<!--
和servlet spec差不多,处理登陆请求
authenticationFailureUrl定义登陆失败时转向的页面
defaultTargetUrl定义登陆成功时转向的页面
filterProcessesUrl定义登陆请求的页面
rememberMeServices用于在验证成功后添加cookie信息
-->
<bean id="authenticationProcessingFilter"
class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationManager" ref="authenticationManager" />
<property name="authenticationFailureUrl" value="/index.jsp?login_error=1" /><!-- 认证失败后的URL -->
<property name="defaultTargetUrl" value="/main.jsp" /><!-- 跳转后的URL -->
<property name="filterProcessesUrl" value="/j_acegi_security_check" /><!-- 要过滤的URL -->
<property name="rememberMeServices" ref="rememberMeServices" /><!-- 登录时将用户名或密码保存到 cookie 中 -->
</bean>
<!-- 认证的处理过滤器 -->
<bean id="authenticationManager"
class="org.acegisecurity.providers.ProviderManager">
<property name="providers">
<list>
<ref local="daoAuthenticationProvider" />
<bean class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">
<property name="key" value="baobaotao" />
</bean>
<ref local="anonymousAuthenticationProvider" />
</list>
</property>
<property name="sessionController" ref="concurrentSessionController"/>
</bean>
<!-- 基于数据库存储的用户信息获取 -->
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<!--#1 -->
</bean>
<!-- 基于数据库的中使用列表的对象 org.acegisecurity.userdetails.jdbc.JdbcDaoImpl 这个处理类是固定的 -->
<bean id="userDetailsService"
class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
<property name="dataSource" ref="dataSource" />
<property name="usersByUsernameQuery">
<value>
SELECT username,password,1 FROM t_user WHERE status='1'
AND username = ?
</value>
<!-- 根据用户名查询用户的SQL语句 -->
</property>
<property name="authoritiesByUsernameQuery">
<value>
SELECT u.username,p.priv_name FROM t_user u,t_user_priv
p WHERE u.user_id =p.user_id AND u.username = ?
</value>
<!-- 根据用户名查询用户权限的sql语句 -->
</property>
</bean>
//jdbcDaoImpl通过usersByUsernameQuery和authoritiesByUsernameQuery属性的定义查询用户信息和用户的权限的sql语句,实际上jdbcDaoImpl为以上两个属性提供了默认
发表评论
-
【转】java中volatile关键字的含义
2013-05-12 16:06 1008用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A ... -
java 收集
2012-10-22 09:16 0OpenSessionInViewFilter在查询完之后不提 ... -
java连接sql时候,获取表格各列属性
2012-10-19 18:09 0import java.sql.Connection; ... -
【转载】log4j 日志大小
2012-03-23 19:31 10661今天群里一个哥们问一 ... -
spring bean 自定义作用域
2012-02-18 15:02 4336一般都知道spring2.x bean的作用域 Bean ... -
【转】java获取jar文件位置
2012-02-16 21:04 2038网络转载 在编程的时候如果在工程中无意中导入多个同样的jar ... -
java 逐位运算符
2012-01-22 16:53 4545运算符归类: 一元运算符:逻辑运算符(!),非运算符( ... -
hibernate hql
2011-12-15 20:05 0hibernate -hql 1.hql中最简单的查询 f ... -
Hibernate初探(二)
2011-12-15 16:32 38hql 关联查询fetch hql code: from Te ... -
hibernate 复合主键
2011-11-01 19:30 1361hibernate 复合主键 在实体中可以定义一个嵌入式组件( ... -
28234行的java 类文件
2011-08-29 16:04 937有图为证:28234行的java 类文件 各位有没有???见过 ... -
递归显示文件夹下文件
2011-08-10 14:43 920public static void main(String[ ... -
java.lang.UnsupportedClassVersionError异常解决办法
2011-06-14 14:32 1531出现错误的原因: 是因为我们使用高版本的JDK编译的Java ... -
内部类修改外部类属性
2011-06-10 16:55 5710public class Test { public Str ... -
java log4j日志 写入数据库
2011-06-01 20:57 11306因一个群朋友log4j日志 ... -
eclipse改图片
2011-05-14 08:44 1234例如:eclipse目录在 D:\rd\eclipse3.3 ... -
【转载】<s:doubleselect>标签的使用
2011-01-05 08:49 5499本文装载自:http://karidyang.iteye.co ... -
spirng2.x-入门
2011-01-04 09:50 957Spring 2.5 中除了提供 @Component 注释外 ... -
自定义 StringUtil 处理类
2011-01-04 09:41 1187isNumber //判读是不是数字 isDate//判读 ... -
Hibernate学习笔记--Criteria Query
2011-01-04 09:20 9198Criteria Query通过面向对 ...
相关推荐
spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证...
用户表存储用户基本信息,角色表存储角色信息,而用户角色关联表用于建立用户和角色的多对多关系。在Acegi中,我们可以基于这些数据来实现RBAC,例如定义`ROLE_USER`和`ROLE_ADMIN`角色,并分配给不同的用户。 此外...
首先,Acegi的主要目标是保护Spring应用免受非法访问,它提供了丰富的功能来实现用户认证、会话管理、权限控制以及安全相关的异常处理。Acegi的核心组件包括`AuthenticationManager`、`AccessDecisionManager`和`...
### 基于Spring的Acegi安全框架认证与授权的分析及扩展 #### 1. Acegi安全框架的概述 Acegi(后更名为Spring Security)是Spring框架中的一个子项目,专注于提供强大的安全功能,包括认证、授权以及保护web应用...
Acegi是一个专门为SpringFramework应用提供安全机制的开放源代码项目,全称为Acegi Security System for Spring,当前版本为 0.8.3。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和...
1. **身份验证**: 包括基于内存、数据库、LDAP等多种方式的用户认证。 2. **授权**: 支持基于角色的访问控制(RBAC),可以自定义访问策略,如访问控制表达式(ACE)。 3. **会话管理**: 可以设置会话超时、会话...
acegi sample 基于数据库的DAO认证实现 Mysql的建表脚本在db目录下 为了减小体积,已经将WEB-INF\lib下的依赖包删除,请自行下载以下包,并拷贝至WEB-INF\lib下: spring-1.2.4.jar acegi-security-0.8.3.jar aop...
在IT行业中,安全是至关重要的一个领域,特别是对于基于数据库的用户信息认证系统。Acegi Security是Spring Security的前身,它提供了一套强大的安全框架,用于保护Java Web应用程序。本篇将深入探讨如何利用Acegi ...
Spring Acegi 安全框架是 Spring 框架的一个扩展,专门用于实现企业级应用的安全管理。在 Spring Acegi 3 中,它提供了全面的身份验证、授权和会话管理功能,为 Java 开发者提供了一套强大的安全解决方案。虽然 ...
Spring Acegi(现已被Spring Security替代)为Spring应用提供了全面的安全管理功能,包括身份验证、授权、会话管理以及基于角色的访问控制。本文将深入探讨Spring Acegi的核心概念和使用方法。 首先,Spring Acegi...
Spring Acegi是一个安全框架,它为Spring应用提供了全面的安全管理功能。这个"spring acegi 使用工程demo"显然是一个示例项目,旨在帮助开发者理解和实践如何在Spring应用中集成和使用Acegi安全框架。 首先,Acegi...
标题“spring的acegi应用”指的是在Spring框架中使用Acegi安全模块进行权限管理和用户认证的一个主题。Acegi是Spring早期的一个安全组件,后来发展成为Spring Security,是Spring生态系统中的重要部分,用于提供全面...
Spring Acegi是一个安全框架,它为Spring应用提供了全面的安全管理解决方案。这个例子是为初学者设计的,旨在帮助他们快速理解和应用Acegi框架。Acegi(现在已被Spring Security替代)在Spring应用程序中提供了身份...
在处理与数据库交互方面,Spring Security提供了更强大的支持,包括长期的remember-me功能和基于数据库的角色与用户管理API。 24.2. 目标 在原有应用中,用户信息和资源访问控制已经在数据库中管理。目标是将现有...
Spring安全系统:Acegi Security Acegi简介! Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,...
Acegi-Spring安全框架是一个专为基于Spring的企业应用设计的安全框架,现在被称为Spring Security。它提供了声明式的安全访问控制,允许开发者在Spring容器中配置安全相关的Bean,利用Spring的依赖注入(IoC)和面向...
Spring Acegi是Spring Security的前身,它为Java企业级应用提供了强大的访问控制和安全框架。在深入了解Spring Acegi之前,我们需要先理解Spring Security的基本概念。Spring Security是一个全面的框架,用于保护...