`
jie66989
  • 浏览: 251836 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

spring security3笔记

阅读更多
web.xml中添加security过滤器
<filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
      <filter-name>springSecurityFilterChain</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>


配置security.xml
<http pattern="/403.jsp" security="none"/>
    <http pattern="/login.jsp" security="none"/>
    <http access-denied-page="/403.jsp"><!-- 当访问被拒绝时,会转到403.jsp -->
<form-login login-page="/login.jsp"
authentication-failure-url="/login.jsp?error=true"
default-target-url="/index.jsp" /><!-- 登录成功跳转到index.jsp -->
<logout logout-success-url="/login.jsp" />
<http-basic />
<!--
增加一个filter,这点与Acegi是不一样的,不能修改默认的filter了,这个filter位于FILTER_SECURITY_INTERCEPTOR之前
-->
<custom-filter before="FILTER_SECURITY_INTERCEPTOR" ref="myFilter" />
</http>
<!-- 配置过滤器 --> 
    <beans:bean id="myFilter" class="com.ss3.MySecurityFilter"> 
        <!-- 用户拥有的权限 --> 
        <beans:property name="authenticationManager" ref="myAuthenticationManager" /> 
        <!-- 用户是否拥有所请求资源的权限 --> 
        <beans:property name="accessDecisionManager" ref="myAccessDecisionManager" /> 
        <!-- 资源与权限对应关系 --> 
        <beans:property name="securityMetadataSource" ref="mySecurityMetadataSource" /> 
    </beans:bean> 
   
    <!-- 实现了UserDetailsService的Bean --> 
    <authentication-manager alias="myAuthenticationManager"> 
        <authentication-provider user-service-ref="myUserDetailServiceImpl">
        <password-encoder ref="passwordEncoder"><!-- md5加密:http://www.51240.com/md5jiami/ -->
        <!--<salt-source user-property="username" />-->
</password-encoder>
        </authentication-provider> 
    </authentication-manager> 
    <beans:bean id="myAccessDecisionManager" class="com.ss3.MyAccessDecisionManagerImpl"></beans:bean> 
    <beans:bean id="mySecurityMetadataSource" class="com.ss3.MySecurityMetadataSourceImpl"> 
    </beans:bean> 
    <beans:bean id="myUserDetailServiceImpl" class="com.ss3.MyUserDetailServiceImpl">
    </beans:bean>
   
    <!-- 用户的密码加密或解密 -->
<beans:bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />

spring security框架加载流程
1.加载资源文件为一个map集合key为数据库中设置的请求的url,value为一个拥有这个url访问权限的用户角色的集合,如果资源文件没有值,则不进行任何拦截
2.客户端请求url,首先判断是否登录,没有登录返回错误
3.根据请求的url找到此url对应的访问角色集合,与当前用户的角色进行对比,查看当前用户是否有访问权限,没有权限的抛出异常,程序拦截并返回指定的页面,匹配正确返回页面

另外部分jar包在 http://jie66989.iteye.com/blog/1704769
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics