初步理解Spring Security並實踐

2021-08-26 05:15:19 字數 3074 閱讀 6020

spring security如何使用,先在你的專案pom.xml檔案中宣告依賴。

org.springframework.boot

spring-boot-starter-security

然後建立乙個類並繼承websecurityconfigureradapter這個方法,並在之類中重寫configure的3個方法,其中3個方法中引數包括為httpsecurity(http請求安全處理),authenticationmanagerbuilder(身份驗證管理生成器)和websecurity(web安全)。

}接下來我們先看看protected void configure(httpsecurity http)這個方法提供了乙個預設的配置。

protected void configure(httpsecurity http) throws exception
http.authorizerequests()其中這裡的意思是指通過authorizerequests()方法來開始請求許可權配置。

而接著的.anyrequest().authenticated()是對http所有的請求必須通過授權認證才可以訪問。

直觀描述

方法描述

而and()是返回乙個securitybuilder物件,formlogin()和httpbasic()是授權的兩種方式。

httpbasic()授權認證

formlogin()授權認證

當然這些介面都是spring security原生的介面,我們也可以自定義我們的formlogin頁面!

protected void configure(httpsecurity http) throws exception
提示一下,這個自定義表單登入的自定義頁面中的登入名引數必須被命名為username

密碼引數必須被命名為password。

而接下來當我們需要對某些開放的url,給與任何人訪問的時候,我們應該如何設定呢?答案很簡單我們先看著**慢慢深入!

protected void configure(httpsecurity http) throws exception
我們可以在authorizerequests() 後定義多個antmatchers()配置器來控制不同的url接受不同許可權的使用者訪問,而其中permitall() 方法是執行所有許可權使用者包含匿名使用者訪問。

而hasrole("許可權")則是允許這個url給與引數中相等的許可權訪問。

access("hasrole('許可權') and hasrole('許可權')") 是指允許訪問這個url必須同時擁有引數中多個身份許可權才可以訪問。

hasanyrole("admin", "dba")是指允許訪問這個url必須同時擁有引數中多個身份許可權中的乙個就可以訪問該url。

我們接下來就簡單的定製一下登入登出行為!

使用者認證流程

}新建myuserdetailsservice方法並實現userdetailsservice這個介面

@component

public class myuserdetailsservice implements userdetailsservice

return new securityuser(user);}}

基本的認證邏輯就到這裡了,對於有另外的業務需求都可以在自定義的myuserdetailsservice中處理完成!

@enableglobalauthentication

public class securityconfig extends websecurityconfigureradapter

}

新建mysecurity類

@component("mysecurity")

public class mysecurity()

return false;}}

基於RuoYi學習SpringSecurity整合

spring security配置 author ruoyi enableglobalmethodsecurity prepostenabled true securedenabled true public class securityconfig extends websecurityconfi...

ioctl初步理解

ioctl系統呼叫是為使用者空間建立的一種控制硬體裝置的通道。比如控制串列埠的波特率,馬達的轉速等等。是使用者空間和核心空間進行通訊的方式之一。要實現乙個ioctl,需要使用者空間和核心空間兩方面的配合。如果想要乙個硬體支援ioctl,則要在其驅動函式中加入ioctl的實現,應用程式想要通過ioct...

初步理解socket

在學習socket之前,先回顧下tcp ip協議。tcp ip transmission control protocol internet protocol 即傳輸控制協議 網間協議,定義了主機如何連入網際網路及資料如何再它們之間傳輸的標準,從字面意思來看tcp ip是tcp和ip協議的合稱,但實...