Spring Security

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/security" 
        xmlns:beans="http://www.springframework.org/schema/beans" 
        xmlns:context="http://www.springframework.org/schema/context" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
           http://www.springframework.org/schema/context     
           http://www.springframework.org/schema/context/spring-context-3.0.xsd   
           http://www.springframework.org/schema/security 
           http://www.springframework.org/schema/security/spring-security-3.0.xsd"> 
 
        <!-- access-denied-page 自定义拒绝页面 --> 
        <http auto-config='true' access-denied-page="/accessDenied.jsp"> 
                <!-- 
                        filters='none' spring security不对其进行拦截,任何用户都可以不授权访问 <intercept-url 
                        pattern='/index.jsp' access="ROLE_ADMIN" /> <intercept-url 
                        pattern="/**" access="ROLE_USER" /> 
                --> 
                <!-- 只有拦截后才能使spring security 标签--> 
                <intercept-url pattern="/common/**/*.jsp" filters="none" />  
                <intercept-url pattern="/common/**/index-top.jsp" access="ROLE_ADMIN" /> 
                <intercept-url pattern='/login.jsp' filters='none' /> 
                <!-- 不要过滤图片等静态资源 --> 
                <intercept-url pattern="/**/*.jpg" filters="none" /> 
                <intercept-url pattern="/**/*.png" filters="none" /> 
                <intercept-url pattern="/**/*.gif" filters="none" /> 
                <intercept-url pattern="/**/*.css" filters="none" /> 
                <intercept-url pattern="/**/*.js" filters="none" /> 
                <intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY" /> 
                 
                 
 
 
                <!-- 
                        <form-login> 登录过滤器; login-page 登录页面(必须在以上拦截链中配置其可对任何人访问,否则不停的拦截跳转); 
                        authentication-failure-url 登陆失败页面;default-target-url 默认登录成功后转向的页面 
                --> 
                <form-login login-page='/login.jsp' 
                        authentication-failure-url="/login.jsp?error=true" 
                        default-target-url="/index.jsp" /> 
 
                <!-- 
                        <logout /> 注销过滤器; invalidate-session=true 用户注销,不设置此参数时默认值为true; 
                        logout-success-url 用户注销后跳转的页面/action(可在此处理回收资源等); 
                        logout-url="/j_spring_security_logout" 
                        设置一个特殊的URL以便特定的注销过滤器来捕捉处理,在任何页面中添加一个链接来注销<s:a 
                        href="j_spring_security_logout"></s:a>. 
                        不设置此参数默认值为:"/j_spring_security_logout". 
                --> 
                <!--注销用户--> 
                <logout invalidate-session="true" logout-success-url="/login.jsp" 
                        logout-url="/j_spring_security_logout" /> 
 
  <!-- 检测失效的sessionId,超时时定位到另外一个URL --> 
  <session-management invalid-session-url="/login.jsp" /> 
 
                <!-- 
                        增加一个自定义filter,与Acegi是不一样的,不能修改默认的filter,这个filter位于FILTER_SECURITY_INTERCEPTOR之前 
                --> 
                <custom-filter ref="resourceSecurityInterceptor" before="FILTER_SECURITY_INTERCEPTOR" /> 
        </http> 
 
 
 
    <!-- 自定义过滤器 --> 
        <beans:bean id="resourceSecurityInterceptor" 
                class="com.common.springsecurity.customfilter.FilterSecurityInterceptor"> 
                <!-- 认证管理器,实现用户认证的入口 --> 
                <beans:property name="authenticationManager" ref="MyAuthenticationManager" /> 
                <!-- 访问决策器,决定某个用户具有的角色,是否有足够的权限去访问某个资源  --> 
                <beans:property name="accessDecisionManager" ref="AccessDecisionManager" /> 
                <!-- 资源源数据定义,即定义某一资源可以被哪些角色访问 --> 
                <beans:property name="securityMetadataSource" 
                        ref="InvocationSecurityMetadataSourceService" /> 
                <!-- 每次请求都进行检查. 如果设为true,则只第一次检查,默认为true. 注:默认true时,用户访问权限仅拦截一次.  
                <beans:property name="observeOncePerRequest" value="false" />--> 
        </beans:bean> 
 
        <!-- 认证管理器 --> 
        <authentication-manager alias="MyAuthenticationManager"> 
                <authentication-provider ref="daoAuthenticationProvider"> 
                        <!-- 
                                <user-service>  
                                <user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />  
                                <user name="user" password="user" authorities="ROLE_USER" />  
                                </user-service> 
                                <jdbc-user-service data-source-ref="UserDetailService" /> 
                        --> 
                </authentication-provider> 
        </authentication-manager> 
 
        <!-- 
                访问决策器,决定某个用户具有的角色,是否有足够的权限去访问某个资源 
                ,AffirmativeBased表示只要有一个Voter通过权限要求,就可以访问 
        --> 
        <beans:bean id="accessDecisionManager" 
                class="org.springframework.security.access.vote.AffirmativeBased"> 
                <!-- 是否允许所有的投票者弃权,如果为false,表示如果所有的投票者弃权,就禁止访问 --> 
                <beans:property name="allowIfAllAbstainDecisions" 
                        value="false" /> 
                <beans:property name="decisionVoters"> 
                        <beans:list> 
                                <!-- 
                                        RoleVoter默认角色名称都要以ROLE_开头,否则不会被计入权限控制,如果要修改前缀,可以通过对rolePrefix属性进行修改 
                                --> 
                                <beans:bean class="org.springframework.security.access.vote.RoleVoter" /> 
                                <beans:bean 
                                        class="org.springframework.security.access.vote.AuthenticatedVoter" /> 
                        </beans:list> 
                </beans:property> 
        </beans:bean> 
        <!-- 国际化异常信息 --> 
        <beans:bean id="messageSource" 
                class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
                <beans:property name="basename" 
                        value="WEB-INF/log/messages_zh_CN" /> 
        </beans:bean> 
         
        <!-- DAO认证提供器  
Spring Security包含了一个产品级别的AuthenticationProvider实现,叫做DaoAuthenticationProvider。 
 这个认证提供器兼容所有生成UsernamePasswordAuthenticationToken的验证机制,它可能是框架里最常用到的提供器。  
 与其他认证提供器一样,DaoAuthenticationProvider通过一个UserDetailsService来获得用户名,密码和GrantedAuthority[]。 
  与其他认证提供器不同的是,这个认证提供器需要获得一个密码,它会根据认证请求对象里的密码来判断认证是否成功。  --> 
   <beans:bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">   
      <beans:property name="userDetailsService" ref="UserDetailService" />  <!-- 必须实现的接口 --> 
      <beans:property name="hideUserNotFoundExceptions" value="false"/><!-- 是否隐藏用户没有找到的异常,默认为trye,即将不能准确地报告用户是否存在的异常 -->   
      <!-- [可选项]  PasswordEncoder为从配置好的UserDetailsService中返回的UserDetails对象里的密码,提供加密功能。  
      SaltSource使用盐值生成密码,这可以提升认证资源密码的安全性。  
      Spring Security支持MD5,SHA和纯文本编码的PasswordEncoder实现。  
      Spring Security提供了两种SaltSource实现:SystemWideSaltSource对所有密码都使用相同的盐值进行编码, 
      ReflectionSaltSource,使用返回的UserDetails对象的属性来获得盐值。   
      <beans:property name="saltSource" ref bean="saltSource"/>  
      <beans:property name="passwordEncoder" ref="passwordEncoder"/>  --> 
   </beans:bean>  
</beans:beans> 
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值