微信做單子的網(wǎng)站源碼搜什么關(guān)鍵詞能找到網(wǎng)站
?作者簡介:大家好,我是Leo,熱愛Java后端開發(fā)者,一個(gè)想要與大家共同進(jìn)步的男人😉😉
🍎個(gè)人主頁:Leo的博客
💞當(dāng)前專欄: Java從入門到精通
?特色專欄: MySQL學(xué)習(xí)
🥭本文內(nèi)容:SpringSecurity6 | 自定義認(rèn)證規(guī)則
📚個(gè)人知識(shí)庫 :知識(shí)庫,歡迎大家訪問
學(xué)習(xí)參考 :
- 講師:孫帥老師
- 課程:孫哥說SpringSecurity6
1.前言
大家好,我是Leo哥🫣🫣🫣,接到上一節(jié),我們學(xué)習(xí)了如何修改SpringSecurity默認(rèn)用戶,使用我們自己的自定義的用戶名和密碼來進(jìn)行認(rèn)證登錄。但是有時(shí)候我們的開發(fā)者可能并不是所有的接口都需要進(jìn)行攔截,就比如,登錄,注冊接口等這些是不是要進(jìn)行攔截的,那么如何修改并自定義這些規(guī)則。沒錯(cuò)這就是我們本節(jié)的重點(diǎn)。好了,話不多說讓我們開始吧😎😎😎。
2.環(huán)境搭建
本篇我們開始搭建一個(gè)新的模塊,并取名為custom。具體搭建過程大家可以自行搭建,我這里就不在贅述了哈。
我已經(jīng)搭建好了基本工程,并定義好了兩個(gè)接口,以及自定義我們的登錄用戶名以及密碼。
下面我們直接啟動(dòng)SpringBoot工程。
通過http://localhost:8600/test訪問test接口
通過http://localhost:8600/hello訪問hello接口
發(fā)現(xiàn)他都經(jīng)過認(rèn)證,至此我們基本環(huán)境介紹就到這里。
3.自定義規(guī)則
3.1 概述
在SpringSecurity6中,我們原本在原來SpringSecurity實(shí)現(xiàn)的方法已經(jīng)被拋棄,已經(jīng)完全不能用了。
我們在SpringSecurity6可以這樣進(jìn)行實(shí)現(xiàn)。
- 首先自定義一個(gè)配置類,我這里命名為MySecurityConfig.java。
- 然后實(shí)現(xiàn)@EnableWebSecurity注解,并向Spring中注入一個(gè)Bean對象SecurityFilterChain。
- 后面我們都是通過這樣實(shí)現(xiàn)方式的。
- 最后我們就可以開始自定義我們的規(guī)則了。
3.2 規(guī)則
- 放行hello接口。
- 除了hello接口,其他接口都需要進(jìn)行認(rèn)證。
- 開啟表單認(rèn)證。
直接上代碼。
package org.javatop.custom.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;/*** @author : Leo* @version 1.0* @date 2023-12-09 17:45* @description :*/
@Configuration
@EnableWebSecurity
public class MySecurityConfig {@Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {http.authorizeRequests().requestMatchers("/hello").permitAll() // 放行改資源,不用認(rèn)證可以直接訪問.anyRequest().authenticated() // 所有請求都需要認(rèn)證.and().formLogin(); // 開啟表單登錄return http.build();}
}
最后我們重啟項(xiàng)目然后看效果是不是按照我們配置這樣的。
首先訪問http://localhost:8600/hello接口,發(fā)現(xiàn)確實(shí)沒有通過認(rèn)證可以直接訪問,說明我們的配置類生效了。
然后訪問http://localhost:8600/test接口,發(fā)現(xiàn)我們需要進(jìn)行登錄認(rèn)證之后才可以訪問。
3.3 拓展
當(dāng)然也不是需要通過一個(gè)一個(gè)加然后進(jìn)行配置,我們?nèi)绻枰判卸鄠€(gè)接口,我們可以通過進(jìn)行以下配置。
直接在后面加上你需要放行的接口路徑即可。
4.總結(jié)
以上便是本文的全部內(nèi)容,本人才疏學(xué)淺,文章有什么錯(cuò)誤的地方,歡迎大佬們批評指正!我是Leo,一個(gè)在互聯(lián)網(wǎng)行業(yè)的小白,立志成為更好的自己。
如果你想了解更多關(guān)于Leo,可以關(guān)注公眾號(hào)-程序員Leo,后面文章會(huì)首先同步至公眾號(hào)。