您现在的位置: 捷凌网安 >> 认证考试 >> JAVA认证 >> 正文
学习Acegi-认证(authentication)

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-3-14 0:32:36

     最近两星期在学习acegi,过程中感谢javaEye,SpringSide和在网上提供acegi学习心得的网友们。
为了加深自己的认识,准备写下一些DEMO,希望可以给准备学习acegi的同学一些帮助。
      作为安全服务离不开认证和授权这两个主要组成部分。而这篇文章就是针对acegi的认证服务
                                                                              学习Acegi-认证(authentication)
代码环境基于:
JDK1.5
acegi1.0.3
spring2.0

IDE基于:
Eclipse3.2+MyEclipse5.0.1

面向人员:
熟悉Eclipse+MyEclipse开发但刚开始了解acegi的人员。如果你是高手请指出文章不足之处。

1.建立一个MyEclipse的WebProject,把下列jar文件拷贝到项目的WEB-INF/lib目录:
acegi-securITy-1.0.3.jar
spring2.0.jar
commons-codec-1.3.jar
费话说一句(占些字数):这是因为代码运行需要这些包的支持。


2.修改WEB-INF下的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">

    
< display - name > acegi Example of liuyxIT </ display - name >
    
    
<!--
        定义应用的上下文参数,用于ContextLoaderListener      
    
-->
    
< context - param >
        
< param - name > contextConfigLocation </ param - name >
        
< param - value >
            classpath:spring
/ applicationContext.xml
        
</ param - value >
    
</ context - param >

    
<!-- acegi 的filter链代理 -->
    
< filter >
        
< filter - name > Acegi Filter Chain Proxy </ filter - name >
        
< filter - class >
            org.acegisecurITy.util.FilterToBeanProxy
        
</ filter - class >
        
< inIT - param >
            
< param - name > targetClass </ param - name >
            
< param - value >
                org.acegisecurITy.util.FilterChainProxy
            
</ param - value >
        
</ inIT - param >
    
</ filter >

    
< filter - mapping >
        
< filter - name > Acegi Filter Chain Proxy </ filter - name >
        
< url - pattern > /* </url-pattern>
    </filter-mapping>

    <!--
        装载应用软件的Spring上下文
        要由WebapplicationContextUtils.getWebApplicationnContext(servletContext)得到.
    -->
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

</web-app>


其中FilterChainProxy实现了filter接口,它主要是实例化FilterChainProxy,并把所有动作交由FilterChainProxy处理。这样简化了web.xml的配置,并且充分利用了Spring IOC管理Bean的优势。

3.在src目录右键新建一个resource folder,在下面再建立acegi和spring目录
在spring目录中创建applicationContext.xml文件,内容:

<? xml version = " 1.0 "  encoding = " UTF-8 " ?>
< beans xmlns = " http://www.springframework.org/schema/beans "
       xmlns:xsi
= " http://www.w3.org/2001/XMLSchema-instance "
       xmlns:aop
= " http://www.springframework.org/schema/aop "
       xmlns:tx
= " http://www.springframework.org/schema/tx "
       xsi:schemaLocation
= " http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http: // www.springframework.org/schema/aop  http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http: // www.springframework.org/schema/tx  http://www.springframework.org/schema/tx/spring-tx-2.0.xsd "
        default - autowire = " byName "   default - lazy - inIT = " true " >
    
    
<!--   ========================  FILTER CHAIN  =======================   -->
    
< bean id = " filterChainProxy "   class = " org.acegisecurITy.util.FilterChainProxy " >
      
< property name = " filterInvocationDefinITionSource " >
         
< value >
            CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
            PATTERN_TYPE_APACHE_ANT
            
/** =authenticationProcessingFilter,exceptionTranslationFilter
         </value>
      </property>
    </bean>   
    <!-- ======================== 认证filter ======================= -->
   
    <!-- 表单认证处理filter -->
    <bean id="authenticationProcessingFilter" class="org.acegisecurITy.ui.webapp.AuthenticationProcessingFilter">
        <property name="authenticationManager" ref="authenticationManager"/>
        <property name="authenticationFailureUrl" value="/acegilogin.jsp?login_error=1"/>
        <property name="defaultTargetUrl" value="/userinfo.jsp"/>
        <property name="filterProcessesUrl" value="/j_acegi_securITy_check"/>
    </bean>    
       
   <!-- 认证管理器 -->
   <bean id="authenticationManager" class="org.acegisecurITy.providers.ProviderManager">
      <property name="providers"><!-- 可有多个认证提供器,其中一个证通过就可以了 -->
         <list>
            <ref local="daoAuthenticationProvider"/>
            <ref local="rememberMeAuthenticationProvider"/>
         </list>
      </property>
   </bean>   
    <bean id="daoAuthenticationProvider" class="org.acegisecurITy.providers.dao.DaoAuthenticationProvider">
        <property name="userDetailsService" ref="inMemoryDaoImpl"/>        
    </bean>    
    <!-- 用户资料-->
     <bean id="inMemoryDaoImpl" class="org.acegisecurITy.userdetails.memory.InMemoryDaoImpl">  
        <property name="userMap">  
            <value>  
                liuyxIT=123,ROLE_SUPERVISOR
                user1=user1,ROLE_USER
                user2=user2,disabled,ROLE_USER   
            </value>  
        </property>  
    </bean>
    <!-- 异常处理filter -->
    <bean id="exceptionTranslationFilter" class="org.acegisecurITy.ui.ExceptionTranslationFilter">
        <property name="authenticationEntryPoint">
            <bean class="org.acegisecurITy.ui.webapp.AuthenticationProcessingFilterEntryPoint">
                <property name="loginFormUrl" value="/acegilogin.jsp"/>
                <property name="forceHttps" value="false"/>
            </bean>
        </property>
        <property name="accessDeniedHandler">
            <bean class="org.acegisecurITy.ui.AccessDeniedHandlerImpl">
                <property name="errorPage" value="/accessDenied.jsp"/>
            </bean>
        </property>
    </bean>    
</beans>

[1] [2] [3] [4] 下一页

  • 上一篇文章:

  • 下一篇文章: 没有了
  •  
    最进更新
    推荐文章新生代JAVA程序员的思想03-14
    普通文章java程序员面试必备的32个要03-14
    普通文章学习Acegi-认证(authenticat03-14
    普通文章SCJP 310-035考试心得03-14
    普通文章Java认证权威问答精华集03-14
    普通文章SCJP考试题310-02503-14
    推荐文章国内Java培训机构品牌化之路03-14
    普通文章Java认证SCJP考试四折优惠03-14
    普通文章SUN SCJP考试优惠活动03-14
    推荐文章2007年8月最新版CCNA注册方法03-07
     
    推荐文章
    推荐文章新生代JAVA程序员的思想03-14
    推荐文章国内Java培训机构品牌化之路03-14
    推荐文章2007年8月最新版CCNA注册方法03-07
    推荐文章MCSE认证考试全程心得02-28
    推荐文章SCSECA认证新增Solaris10安全02-21
    推荐文章认证介绍-2004年考Linux必备02-21
    推荐文章高手攻关心得:RHCE实战详细经02-21
    推荐文章中国Linux培训炙手可热 人才02-21
    推荐文章2003年4月三级PC技术试题分析02-19
    推荐文章Oracle数据库简介02-19
     
    热点文章 
    普通文章java程序员面试必备的32个要03-14
    普通文章学习Acegi-认证(authenticat03-14
    普通文章Java认证权威问答精华集03-14
    推荐文章国内Java培训机构品牌化之路03-14
    普通文章Java认证SCJP考试四折优惠03-14
    普通文章CCNA认证英文词汇中文解析--03-07
    普通文章微软开展2007“一次不过,免02-28
    普通文章微软Windows Server 2008认证02-28
    推荐文章MCSE认证考试全程心得02-28
    普通文章强档贡献:MCSE 2003最新学习02-28

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号