spring-security结合jwt和umi(react前端框架)企业级框架以前后端分离最佳实战(表单模式登陆)(一)

前言

先向你们介绍几个框架的做用,提供官网地址,方便你们详细了解。前端

  • spring-security
    spring-security是一个功能强大、高度可定制的身份验证和访问控制框架。它其实是保护基于Spring的应用程序的标准。
    Spring Security是一个专一于为Java应用程序提供身份验证和受权的框架。与全部Spring项目同样,Spring安全的真正威力在于它能够很容易地被扩展以知足定制需求
  • umi
    umi中文可发音为乌米,是可扩展的企业级前端应用框架。Umi 以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。而后配以生命周期完善的插件体系,覆盖从源码到构建产物的每一个生命周期,支持各类功能扩展和业务需求。
    Umi 是蚂蚁金服的底层前端框架,已直接或间接地服务了 3000+ 应用,包括 java、node、H5 无线、离线(Hybrid)应用、纯前端 assets 应用、CMS 应用等。他已经很好地服务了咱们的内部用户,同时但愿他也能服务好外部用户。
  • jwt
    Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。JWT的声明通常被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也能够增长一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

后端整合spring-security和jwt

  • 起一个springboot的项目导入jar
 1<dependencies>
2        <dependency>
3            <groupId>org.springframework.boot</groupId>
4            <artifactId>spring-boot-starter-data-jpa</artifactId>
5        </dependency>
6        <dependency>
7            <groupId>org.springframework.boot</groupId>
8            <artifactId>spring-boot-starter-web</artifactId>
9        </dependency>
10
11        <dependency>
12            <groupId>org.projectlombok</groupId>
13            <artifactId>lombok</artifactId>
14            <optional>true</optional>
15        </dependency>
16        <dependency>
17            <groupId>org.springframework.boot</groupId>
18            <artifactId>spring-boot-starter-test</artifactId>
19            <scope>test</scope>
20            <exclusions>
21                <exclusion>
22                    <groupId>org.junit.vintage</groupId>
23                    <artifactId>junit-vintage-engine</artifactId>
24                </exclusion>
25            </exclusions>
26        </dependency>
27        <dependency>
28            <groupId>org.springframework.boot</groupId>
29            <artifactId>spring-boot-starter-security</artifactId>
30        </dependency>
31
32        <dependency>
33            <groupId>org.springframework.security</groupId>
34            <artifactId>spring-security-test</artifactId>
35            <scope>test</scope>
36        </dependency>
37        <dependency>
38            <groupId>io.jsonwebtoken</groupId>
39            <artifactId>jjwt</artifactId>
40            <version>0.9.1</version>
41        </dependency>
42        <dependency>
43            <groupId>mysql</groupId>
44            <artifactId>mysql-connector-java</artifactId>
45            <scope>runtime</scope>
46        </dependency>
47    </dependencies>
复制代码
  • 数据库建表
    由于我的使用的是JPA数据库管理框架因此直接就能够在代码里写好model就能够在数据库里生成对应的表,相应的代码会在后面给出github的项目地址,在这里就放张图给你们看下
    java

    数据库的表
    数据库的表

    一共5张表,包括用户表,角色表,权限表,用户角色表,角色权限表。

  • application.yml的相关配置node

 1#server
2server.servlet.context-path=/api
3
4#spring
5spring.datasource.url=jdbc:mysql://localhost:3306/java-umi?useUnicode=true&characterEncoding=utf8&useSSL=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
6spring.datasource.username=数据库用户名
7spring.datasource.password=数据库密码
8spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
9
10## jpa
11spring.jpa.show-sql=true
12spring.jpa.hibernate.ddl-auto=update
13spring.jpa.properties.hibernate.format_sql=true
复制代码

项目github地址: spring-security-jwt-umimysql


这一章先讲springboot项目的基础配置,有关spring-security的核心内容和流程,将在下一章展开。git

欢迎你们关注我微信公众号一块儿学习,探讨!​
github

微信公众号hua
微信公众号
相关文章
相关标签/搜索