Spring Security快速入门、进阶、高级

这篇博客详细介绍了Spring Security的基本概念、配置步骤、权限管理以及高级特性。从创建Maven工程,配置Spring Security的坐标,到设置可匿名访问的资源、自定义登录页面,再到从数据库获取用户信息和密码加密,最后探讨了注解方式的权限控制。通过实例展示了Spring Security如何简化认证和授权流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.目标

  • 知道什么是Spring Security

2.路径

  1. Spring Security简介
  2. Spring Security使用需要的坐标

3.讲解

3.1 Spring Security简介

Spring Security是 Spring提供的安全认证服务的框架。 使用Spring Security可以帮助我们来==简化认证和授权的过程。==官网:https://spring.io/projects/spring-security

常用的权限框架除了Spring Security,还有Apache的shiro框架。

3.2对应的maven坐标

<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-web</artifactId>
  <version>5.0.5.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-config</artifactId>
  <version>5.0.5.RELEASE</version>
</dependency>

4.小结

  1. SpringSecurity是Spring家族的一个安全框架, 简化我们开发里面的认证和授权过程
  2. SpringSecurity内部封装了Filter
  3. 常见的安全框架
    • Spring的 SpringSecurity
    • Apache的Shiro http://shiro.apache.org/

案例-Spring Security快速入门

1.需求

使用Spring Security进行控制: 网站(一些页面)需要登录才能访问

2.步骤

  1. 创建Maven工程 springsecurity_demo,导入坐标(依赖health_interface)
  2. 创建springsecurity.xml(1.自动配置 2.配置授权管理器)
  3. 配置web.xml(前端控制器, SpringSecurity相关的过滤器)

3.实现

  • 创建maven工程,打包方式为war,

    <?xml version="1.0" encoding="UTF-8"?>

      <artifactId>springsecurity_demo</artifactId>
      <packaging>war</packaging>
    
      <dependencies>
          <dependency>
              <groupId>com.Better_Po</groupId>
              <artifactId>health_interface</artifactId>
              <version>1.0-SNAPSHOT</version>
          </dependency>
      </dependencies>
      <build>
          <plugins>
              <plugin>
                  <groupId>org.apache.tomcat.maven</groupId>
                  <artifactId>tomcat7-maven-plugin</artifactId>
                  <configuration>
                      <!-- 指定端口 -->
                      <port>85</port>
                      <!-- 请求路径 -->
                      <path>/</path>
                  </configuration>
              </plugin>
          </plugins>
      </build>
    
  • 创建spring-security.xml

    <?xml version="1.0" encoding="UTF-8"?>

      <!--1.配置需要权限才能访问的资源
               auto-config属性: true 自动配置
               use-expressions属性: false 不使用表达式
      -->
      <security:http auto-config="true" use-expressions="false">
          <!--配置拦截的路径 pattern属性: 拦截的路径规则; access属性:需要什么角色才能访问-->
          <security:intercept-url pattern="/**" access="ROLE_ADMIN"></security:intercept-url>
      </security:http>
      <!--2.配置认证管理器-->
      <security:authentication-manager>
          <security:authentication-provider>
              <security:user-service>
                  <!--配置账号密码,以及该账号的角色信息     name属性: 用户名; password属性:密码({noop}不加密方式);  authorities属性:赋予的角色     -->
                  <security:user name="admin" authorities="ROLE_ADMIN" password="{noop}admin"></security:user>
              </security:user-service>
          </security:authentication-provider>
      </security:authentication-manager>
    

在spring-security.xml中主要配置Spring Security的拦截规则和认证管理器

  • 配置web.xml

    <?xml version="1.0" encoding="UTF-8"?>



    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp

      <servlet>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值