最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot+Spring Security基于內(nèi)存用戶認證的實現(xiàn)

 更新時間:2024年11月27日 10:14:43   作者:憂傷夏天的風  
本文介紹了SpringBoot+Spring Security基于內(nèi)存用戶認證的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、Spring Security框架

1. 框架簡介

官方介紹:Spring Security是一個功能強大且可高度自定義的身份驗證和訪問控制框架。它是保護基于Spring的應用程序的事實標準。 Spring Security是一個專注于為Java應用程序提供身份驗證和授權(quán)的框架。與所有Spring項目一樣,Spring Security的真正強大之處在于它可以輕松擴展以滿足自定義要求。

Spring Security是一個為基于Spring的企業(yè)應用系統(tǒng)提供聲明式的安全訪問控制解決方式的安全框架(簡單說是對訪問權(quán)限進行控制),應用的安全性包括用戶認證(Authentication)和用戶授權(quán)(Authorization)兩個部分。Spring Security的主要核心功能為 認證和授權(quán),所有的架構(gòu)也是基于這兩個核心功能去實現(xiàn)的。

  • 用戶認證指的是驗證某個用戶是否為系統(tǒng)中的合法主體,也就是說用戶能否訪問該系統(tǒng)。用戶認證一般要求用戶提供用戶名和密碼。系統(tǒng)通過校驗用戶名和密碼來完成認證過程。
  • 用戶授權(quán)指的是驗證某個用戶是否有權(quán)限執(zhí)行某個操作。在一個系統(tǒng)中,不同用戶所具有的權(quán)限是不同的。比如對一個文件來說,有的用戶只能進行讀取,而有的用戶可以進行修改。一般來說,系統(tǒng)會為不同的用戶分配不同的角色,而每個角色則對應一系列的權(quán)限。

特征:

  • 對身份驗證和授權(quán)的全面和可擴展的支持
  • 防止會話固定,點擊劫持,跨站點請求偽造等攻擊
  • Servlet API集成
  • 可選與Spring Web MVC集成

2. 框架原理

想要對對Web資源進行保護,最好的辦法莫過于Filter,要想對方法調(diào)用進行保護,最好的辦法莫過于AOP。所以Spring Security在我們進行用戶認證以及授予權(quán)限的時候,通過各種各樣的攔截器來控制權(quán)限的訪問,從而實現(xiàn)安全。

Spring Security 框架的主要過濾器(Filter) : 

  • WebAsyncManagerIntegrationFilter 
  • SecurityContextPersistenceFilter 
  • HeaderWriterFilter 
  • CorsFilter 
  • LogoutFilter
  • RequestCacheAwareFilter
  • SecurityContextHolderAwareRequestFilter
  • AnonymousAuthenticationFilter
  • SessionManagementFilter
  • ExceptionTranslationFilter
  • FilterSecurityInterceptor
  • UsernamePasswordAuthenticationFilter
  • BasicAuthenticationFilter

  Spring Security框架的核心組件:

  • SecurityContextHolder:提供對SecurityContext的訪問
  • SecurityContext:持有Authentication對象和其他可能需要的信息
  • AuthenticationManager 其中可以包含多個AuthenticationProvider
  • ProviderManager對象為AuthenticationManager接口的實現(xiàn)類
  • AuthenticationProvider 主要用來進行認證操作的類 調(diào)用其中的authenticate()方法去進行認證操作
  • Authentication:Spring Security方式的認證主體
  • GrantedAuthority:對認證主題的應用層面的授權(quán),含當前用戶的權(quán)限信息,通常使用角色表示
  • UserDetails:構(gòu)建Authentication對象必須的信息,可以自定義,可能需要訪問DB得到
  • UserDetailsService:通過username構(gòu)建UserDetails對象,通過loadUserByUsername根據(jù)userName獲取UserDetail對象 (可以在這里基于自身業(yè)務進行自定義的實現(xiàn)  如通過數(shù)據(jù)庫,xml,緩存獲取等)  

二、SpringBoot 整合Spring Security

1. 項目環(huán)境

(1)JDK版本:1.8

(2)Spring Boot:2.1.2.RELEASE

(3)Spring Security 5.1.3

(4)IntelliJ IDEA 2016.3.4

2. 添加依賴并配置

在pom.xml文件中添加Spring Security的依賴:

<!--Spring Security-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-security</artifactId>
</dependency

在application.yml中配置Spring Security的用戶名密碼:

server:
  port: 8082

# spring security
spring:
    security:
        user:
          name: ouyang
          password: 123456

3. 編寫Controller

package com.oycbest.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @Author: oyc
 * @Date: 2019/1/29 10:49
 * @Description: Hello 測試控制類
 */
@RestController
public class HelloController {
    @GetMapping("hello")
    public String hello(HttpServletRequest request, HttpServletResponse response) throws Exception {
        return "hello";
    }
}

三、測試效果

到此這篇關(guān)于SpringBoot+Spring Security基于內(nèi)存用戶認證的實現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot Spring Security內(nèi)存用戶認證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring AOP 的組成和實現(xiàn)

    Spring AOP 的組成和實現(xiàn)

    這篇文章主要介紹了Spring AOP 的組成和實現(xiàn),AOP 是一種思想,Spring AOP 是這種思想的具體實現(xiàn),本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • Java利用布隆過濾器實現(xiàn)快速檢查元素是否存在

    Java利用布隆過濾器實現(xiàn)快速檢查元素是否存在

    布隆過濾器是一個很長的二進制向量和一系列隨機映射函數(shù)。布隆過濾器可以用于檢索一個元素是否在一個集合中。本文就來詳細說說實現(xiàn)的方法,需要的可以參考一下
    2022-10-10
  • 解決rocketmq-spring-boot-starter導致的多消費者實例重復消費問題

    解決rocketmq-spring-boot-starter導致的多消費者實例重復消費問題

    這篇文章主要介紹了解決rocketmq-spring-boot-starter導致的多消費者實例重復消費問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • tk-mybatis 的使用方法詳解

    tk-mybatis 的使用方法詳解

    tkmybatis是在mybatis框架的基礎(chǔ)上提供了很多工具,本文就詳細的介紹了一下tk-mybatis 的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • springboot項目中引入本地依賴jar包并打包到lib文件夾中

    springboot項目中引入本地依賴jar包并打包到lib文件夾中

    這篇文章主要介紹了springboot項目中引入本地依賴jar包,如何打包到lib文件夾中,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • java書店系統(tǒng)畢業(yè)設(shè)計 用戶模塊(3)

    java書店系統(tǒng)畢業(yè)設(shè)計 用戶模塊(3)

    這篇文章主要介紹了java書店系統(tǒng)畢業(yè)設(shè)計,第三步系統(tǒng)總體設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Mybatis源碼分析之插件模塊

    Mybatis源碼分析之插件模塊

    今天給大家?guī)淼氖顷P(guān)于Mybatis的相關(guān)知識,文章圍繞著Mybatis插件模塊展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java+TestNG接口自動化入門詳解

    Java+TestNG接口自動化入門詳解

    本文主要介紹了Java+TestNG接口自動化入門,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • IDEA GIT 忽略文件的最佳方式推薦

    IDEA GIT 忽略文件的最佳方式推薦

    這篇文章主要介紹了IDEA GIT 忽略文件的最佳方式推薦,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java語言實現(xiàn)Blowfish加密算法完整代碼分享

    Java語言實現(xiàn)Blowfish加密算法完整代碼分享

    這篇文章主要介紹了Java語言實現(xiàn)Blowfish加密算法完整代碼分享,簡單介紹了blowfish加密算法,具有一定借鑒價值,需要的朋友可以參考下。
    2017-11-11

最新評論

康定县| 兴业县| 兴宁市| 庐江县| 儋州市| 东源县| 亚东县| 商水县| 乌兰察布市| 高台县| 涪陵区| 肇东市| 南昌市| 凌海市| 开阳县| 武宣县| 涟水县| 玉溪市| 汕头市| 海伦市| 淮滨县| 龙江县| 信宜市| 平果县| 子长县| 信阳市| 景德镇市| 大埔区| 全椒县| 永泰县| 灌阳县| 剑河县| 微山县| 遵义县| 武功县| 弥渡县| 罗平县| 渝北区| 南城县| 黄石市| 巴彦淖尔市|