Spring security 自定义登录与权限控制

本文详细介绍了如何在Spring Security中实现自定义登录和权限控制。配置了web.xml、application-context.xml、securityConfig.xml和toolbox.xml文件。重点讨论了SecurityVelocity.java和UserDetailServiceImpl.java中设置用户权限的方法。在登录逻辑中,通过UsernamePasswordAuthenticationToken进行验证,并将权限信息存入Spring Security上下文。同时,文章提到了自动登录时可能导致的循环重定向问题及其解决方案。
摘要由CSDN通过智能技术生成

一、先说必要的配置文件:

1、web.xml文件添加上

<!-- Spring 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>


2、application-context.xml配置文件

在application-context配置文件中加入spring security配置文件的引用:

<?xml version="1.0" encoding="UTF-8"?>
<beans ......>
   <bean>
      <!-- Connection Info --> ......此处省略
   </bean>
   <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
     ......  
     <!-- if you want to use the Spring Velocity macros, set this property to true -->
     <property name="exposeSpringMacroHelpers" value="true"/>
     <property name="contentType" value="text/html;charset=UTF-8"></property>
  
      <property name="toolboxConfigLocation">
      <value>/WEB-INF/toolbox.xml</value>
      </property>
    </bean>
<import resource="/securityConfig.xml"/></beans>

3、securityConfig.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:security="http://www.springframework.org/schema/security"
   xsi:schemaLocation="http://www.springframework.org/schema/beans 
             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
         http://www.springframework.org/schema/security 
         http://www.springframework.org/schema/security/spring-security-3.2.xsd">

   <!--use-expressions="true" 的意思是开启表达式 , access-denied-page的意思是,当验证权限失败后会跳转到的页面 -->
   <security:http auto-config="true" use-expressions="true" access-denied-page="/denied">
      
      <!-- 对所有的资源,进行权限的设置访问-->
      <!-- 所有人都可以访问资源文件 -->
<security:intercept-url pattern="/login" access="permitAll" />
      <security:intercept-url pattern="/logout" access="permitAll" />
      <security:intercept-url pattern="/slr/prd/**" access="hasAnyRole('SHOW_PRD','ADD_PRD','MOD_PRD','DEL_PRD')" />
      <security:intercept-url pattern="/slr/order/**" access="hasAnyRole('SHOW_ORD','CONFIRM_ORD','CANCEL_ORD')" />
      <security:intercept-url pattern="/slr/mgm/**" access="hasAnyRole('SHOW_ACCT','ADD_ACCT','MOD_ACCT','DEL_ACCT')" />
      <!-- 配置登录页面为
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值