初识spring security

1.前言

我们在日常的项目开发过程中经常会开发登录认证,授权等基础功能。这些功能看上去简单,实际上也简单,但是它却在我们项目中有着举足轻重的地位,是一切业务的根本。为了统一解决这一根本问题,软件行业的巨头公司出了一些框架, 如: apache shirospring securitySa-Token。那么今天我们就来聊聊 spring security。

2.简介

2.1 什么是 spring security

Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。它是保护基于 Spring 的应用程序的事实上的标准。
Spring Security 是一个专注于为 Java 应用程序提供身份验证和授权的框架。与所有 Spring 项目一样,Spring Security 的真正强大之处在于它可以轻松扩展以满足自定义要求

spring security 的特征
对身份验证和授权的全面且可扩展的支持。
防止会话固定、点击劫持、跨站点请求伪造等攻击
Servlet API 集成
与 Spring Web MVC 的可选集成

2.2 spring security 的优点

1.提供了一套权限框架,这套框架是可行的
2.提供了很多用户身份认证功能,可以节约大量开发工作
3.提供了角色判断功能,这点既是优点又是缺点
4.提供了csrf防攻击的拦截
5.提供了oauth2.0友好的兼容模式

2.3 spring security 的缺点

1.自身提供的加密方式不友好
2.扩展难度比较大。
3.学习成本比较高

3. spring security的第一个程序

3.1 自定义pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>spring-boot-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.2.10.RELEASE</version>
    </parent>

    <groupId>com.security</groupId>
    <artifactId>security</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>

</project>

3.2 定义启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;

@EnableWebSecurity
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@EnableWebSecurity 该注解的作用是想项目引入spring security 相关的几个配置信息类,如: WebSecurityConfiguration, SpringWebMvcImportSelector, OAuth2ImportSelector
WebSecurityConfiguration : 是用来自定义配置认证,授权以及 csrf相关的配置接口,在项目中你可以通过实现它来配置登录认证和授权相关的功能。
SpringWebMvcImportSelector: 是一个条件选择器,他会判断你的web服务器是不是DispatcherServlet然后再考虑会不会去引用WebMvcSecurityConfiguration,这也是 spring boot 自动装配的思想
OAuth2ImportSelector 当你项目中实现了 OAuth2ClientConfiguration oauth2的功能配置那么它会根据不同的web服务器引入相应的oauth2的配置类

3.3 定义 yml
server:
  port: 8088
spring:
  security:
    user:
      name: admin
      password: admin

这里我们在配置文件自定义了账号和密码,当然你也可以不自定义,当你启动的时候它会自动给你生成uuid的密码
在这里插入图片描述

3.4 启动相关

在这里插入图片描述
这样spring security就成功引用了,很简单吧!但是java的知识都是入门简单精通太难,hello word 用什么语言实现都简单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值