Spring Acegi Security实例解析二
2011-10-23 21:23
716 查看
1. 在MySql中执行如下脚本:
2. 将以下Jar包导入工程中:acegi-security-0.8.3.jar、commons-logging-1.0.4.jar、javax.servlet.jar、mysql-connector-java-5.0.3-bin.jar、oro-2.0.8.jar和spring-1.2-RC2.jar。并要加入工程的classpath中。
3. web.xml配置文件的配置如下:
4. applicationContext-acegi-security.xml的配置如下:
5. 登陆表单如下:
Drop TABLE IF EXISTS `test`.`student`; Create TABLE `test`.`student` ( `name` varchar(40) NOT NULL, `psw` varchar(10) NOT NULL, `enabled` boolean ); insert into student values("lanp","lanpiao",true); Drop TABLE IF EXISTS `test`.`user_privileges`; Create TABLE `test`.`user_privileges` ( `name` varchar(40) NOT NULL, `privilege` varchar(40) NOT NULL ); insert into user_privileges values("lanp","ROLE_PRESIDENT");
2. 将以下Jar包导入工程中:acegi-security-0.8.3.jar、commons-logging-1.0.4.jar、javax.servlet.jar、mysql-connector-java-5.0.3-bin.jar、oro-2.0.8.jar和spring-1.2-RC2.jar。并要加入工程的classpath中。
3. web.xml配置文件的配置如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" 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"> <display-name>myacegi</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext-acegi-security.xml </param-value> </context-param> <filter> <filter-name>MyAcegiFilter</filter-name> <filter-class>net.sf.acegisecurity.util.FilterToBeanProxy</filter-class> <init-param> <param-name>targetBean</param-name> <param-value>filterChainProxy</param-value> </init-param> </filter> <filter-mapping> <filter-name>MyAcegiFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
4. applicationContext-acegi-security.xml的配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="filterChainProxy" class="net.sf.acegisecurity.util.FilterChainProxy"> <property name="filterInvocationDefinitionSource"> <value> CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON PATTERN_TYPE_APACHE_ANT /**=httpSessionContextIntegrationFilter,authenticationProcessingFilter </value> </property> </bean> <bean id="httpSessionContextIntegrationFilter" class="net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter"> <property name="context"><value>net.sf.acegisecurity.context.security.SecureContextImpl</value></property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://127.0.0.1:3306/test</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>157891</value> </property> </bean> <bean id="authenticationDao" class="net.sf.acegisecurity.providers.dao.jdbc.JdbcDaoImpl"> <property name="dataSource"><ref bean="dataSource"/></property> <property name="usersByUsernameQuery"> <value>SELECT name, psw, enabled FROM student WHERE name=?</value> </property> <property name="authoritiesByUsernameQuery"> <value>SELECT name, privilege FROM user_privileges where name=?</value> </property> </bean> <bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider"> <property name="authenticationDao"> <ref bean="authenticationDao"/> </property> </bean> <bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager"> <property name="providers"> <list> <ref bean="daoAuthenticationProvider"/> </list> </property> </bean> <bean id="authenticationEntryPoint" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint"> <property name="loginFormUrl"> <value>/login.jsp</value> </property> <property name="forceHttps"><value>true</value></property> </bean> <bean id="authenticationProcessingFilter" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter"> <property name="filterProcessesUrl"> <value>/j_acegi_security_check</value> </property> <property name="authenticationFailureUrl"> <value>/login.jsp?failed=true</value> </property> <property name="defaultTargetUrl"> <value>/jsp/index.jsp</value> </property> <property name="authenticationManager"> <ref bean="authenticationManager"/> </property> </bean> </beans>
5. 登陆表单如下:
<body> <form method="POST" action="j_acegi_security_check"> Name: <input width="100" type="text" name="j_username"><br> Password: <input width="100" type="password" name="j_password"><br> <input type="submit"> </form> </body>
相关文章推荐
- Acegi-security-samples-tutorial-1.0.7.zip 实例代码解析
- spring学习笔记(7)AOP前夕[2]CGLib动态代理实例解析
- 【知识库】--spring 创建bean的实例-createBeanInstance方法解析(240)
- Spring事务传播特性实例解析
- Spring搭配Ehcache实例解析
- 很高兴我的博文《Spring搭配Ehcache实例解析 》被推荐到CSDN博客首页啦
- Spring整合dwr实例解析
- Spring源码解析(八)——实例创建(下)
- Spring单实例、多线程安全、事务解析
- Spring boot+Spring Security 4配置整合实例
- spring-mvc多视图解析配置实例 ContentNegotiatingViewResolver
- Spring源码解析(七)——实例创建(中)
- Spring事务传播特性实例解析(以及如何使用注解形式事务)
- Spring单实例、多线程安全、事务解析
- Spring事务传播特性实例解析
- Spring Acegi Security实例解析三
- Spring单实例、多线程安全、事务解析
- Spring事务传播特性实例解析(转)
- Pathway from ACEGI to Spring Security 2.0
- Java之Spring注解配置bean实例代码解析