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
微信公衆號
相關文章
相關標籤/搜索