国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Spring Security】Spring Security 認(rèn)證與授權(quán)

這篇具有很好參考價(jià)值的文章主要介紹了【Spring Security】Spring Security 認(rèn)證與授權(quán)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在前面的章節(jié)中,我們沿用了Spring Security默認(rèn)的安全機(jī)制:僅有一個(gè)用戶,僅有一種角色。在實(shí)際開發(fā)中,這自然是無法滿足需求的。本章將更加深入地對Spring Security迚行配置,且初步使用授權(quán)機(jī)制。

3.1 默認(rèn)數(shù)據(jù)庫模型的認(rèn)證與授權(quán)

3.1.1、資源準(zhǔn)備

首先,在controller包下新建三個(gè)控制器,如圖所示。

【Spring Security】Spring Security 認(rèn)證與授權(quán),SpringSecurity,java,springsecurity,后端

其次,分別建立一些測試路由。

package com.boot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/admin/api")
public class AdminController {

    @GetMapping("/hello")
    public String hello(){
        return "hello,admin";
    }

}
package com.boot.controller;

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

@RestController
@RequestMapping("/app/api")
public class AppController {

    @GetMapping("/hello")
    public String hello(){
        return "hello,app";
    }

}
package com.boot.controller;

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

@RestController
@RequestMapping("/user/api")
public class UserController {

    @GetMapping("/hello")
    public String hello(){
        return "hello,user";
    }

}

假設(shè)在/admin/api/下的內(nèi)容是系統(tǒng)后臺(tái)管理相關(guān)的API,在/app/api 下的內(nèi)容是面向客戶端公開訪問的API,在/user/api/下的內(nèi)容是用戶操作自身數(shù)據(jù)相關(guān)的API;顯然,/admin/api必須擁有管理員權(quán)限才能進(jìn)行操作,而/user/api必須在用戶登錄后才能進(jìn)行操作。

3.1.2、資源授權(quán)的配置

為了能正常訪問前面的路由,我們需要進(jìn)一步地配置Spring Security。文章來源地址http://www.zghlxwxcb.cn/news/detail-743379.html

package com.boot.config;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.util.StringUtils;

import java.util.List;

import static org.springframework.security.config.Customizer.withDefaults;

//@EnableWebSecurity:開啟SpringSecurity 之后會(huì)默認(rèn)注冊大量的過濾器servlet filter
//過濾器鏈【責(zé)任鏈模式】SecurityFilterChain
@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        //authorizeHttpRequests:針對http請求進(jìn)行授權(quán)配置
        //login登錄頁面需要匿名訪問
        //permitAll:具有所有權(quán)限 也就可以匿名可以訪問
        //anyRequest:任何請求 所有請求
        //authenticated:認(rèn)證【登錄】
        http.authorizeHttpRequests(authorizeHttpRequests->
                authorizeHttpRequests
                        //********************************角色****************************************
                        //.requestMatchers("/admin/api").hasRole("admin") //必須有admin角色才能訪問到
                        //.requestMatchers("/user/api").hasAnyRole("admin","user") // /user/api:admin、user都是可以訪問

                        //********************************權(quán)限****************************************
                        .requestMatchers("/admin/api").hasAuthority("admin:api") //必須有admin:api權(quán)限才能訪問到
                        .requestMatchers("/user/api").hasAnyAuthority("admin:api","user:api") //有admin:api、user:api權(quán)限能訪問到


                        //********************************匹配模式****************************************
                        .requestMatchers("/admin/api/?").hasAuthority("admin:api") //必須有admin:api權(quán)限才能訪問到
                        .requestMatchers("/user/api/my/*").hasAuthority("admin:api") //必須有admin:api權(quán)限才能訪問到

                        .requestMatchers("/admin/api/a/b/**").hasAuthority("admin:api") //必須有admin:api權(quán)限才能訪問到

                        .requestMatchers("/app/api").permitAll() //匿名可以訪問

                        .requestMatchers("/login").permitAll()
                        .anyRequest().authenticated()
        );
        //現(xiàn)在我們借助異常處理配置一個(gè)未授權(quán)頁面:【實(shí)際上是不合理的 我們應(yīng)該捕獲異常信息 通過異常類型來判斷是什么異?!?        http.exceptionHandling(e->e.accessDeniedPage("/noAuth"));

        //http:后面可以一直點(diǎn) 但是太多內(nèi)容之后不美

到了這里,關(guān)于【Spring Security】Spring Security 認(rèn)證與授權(quán)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Security詳細(xì)講解(JWT+SpringSecurity登入案例)

    Spring Security詳細(xì)講解(JWT+SpringSecurity登入案例)

    1.SpringSecurity SpringSecurity 是一個(gè)功能強(qiáng)大且高度可定制的身份驗(yàn)證和訪問控制框架 。它是保護(hù)基于 Spring 的應(yīng)用程序的事實(shí)上的標(biāo)準(zhǔn)。 SpringSecurity 是一個(gè)致力于為 Java 應(yīng)用程序提供身份驗(yàn)證和授權(quán)的框架 。像所有 Spring 項(xiàng)目一樣,Spring Security 的真正強(qiáng)大之處在于它可以如何輕

    2024年02月02日
    瀏覽(23)
  • Gateway+Springsecurity+OAuth2.0+JWT 實(shí)現(xiàn)分布式統(tǒng)一認(rèn)證授權(quán)!

    Gateway+Springsecurity+OAuth2.0+JWT 實(shí)現(xiàn)分布式統(tǒng)一認(rèn)證授權(quán)!

    目錄 1. OAuth2.0授權(quán)服務(wù) 2. 資源服務(wù) 3. Gateway網(wǎng)關(guān) 4. 測試 ? 在SpringSecurity+OAuth2.0 搭建認(rèn)證中心和資源服務(wù)中心-CSDN博客??????? 基礎(chǔ)上整合網(wǎng)關(guān)和JWT實(shí)現(xiàn)分布式統(tǒng)一認(rèn)證授權(quán)。 ? 大致流程如下: 1、客戶端發(fā)出請求給網(wǎng)關(guān)獲取令牌 2、網(wǎng)關(guān)收到請求,直接轉(zhuǎn)發(fā)給授權(quán)服務(wù)

    2024年01月24日
    瀏覽(19)
  • Spring Security in Action 第三章 SpringSecurity管理用戶

    Spring Security in Action 第三章 SpringSecurity管理用戶

    本專欄將從基礎(chǔ)開始,循序漸進(jìn),以實(shí)戰(zhàn)為線索,逐步深入SpringSecurity相關(guān)知識(shí)相關(guān)知識(shí),打造完整的SpringSecurity學(xué)習(xí)步驟,提升工程化編碼能力和思維能力,寫出高質(zhì)量代碼。希望大家都能夠從中有所收獲,也請大家多多支持。 專欄地址:SpringSecurity專欄 本文涉及的代碼都已

    2024年02月07日
    瀏覽(26)
  • 【security】java springboot項(xiàng)目中使用springSecurity安全框架

    springboot項(xiàng)目如果導(dǎo)入security依賴后會(huì)自動(dòng)托管整個(gè)項(xiàng)目,前端在訪問項(xiàng)目的任何路徑時(shí)會(huì)被攔截并跳轉(zhuǎn)到security默認(rèn)的登錄頁面,登錄用戶名為user,密碼為控制臺(tái)啟動(dòng)項(xiàng)目時(shí)生成的隨機(jī)密碼 一、自定義設(shè)置用戶的認(rèn)證:創(chuàng)建一個(gè)配置類(類上加@Configuration),讓該類繼承Web

    2024年02月15日
    瀏覽(20)
  • Spring Boot 整合SpringSecurity和JWT和Redis實(shí)現(xiàn)統(tǒng)一鑒權(quán)認(rèn)證

    Spring Boot 整合SpringSecurity和JWT和Redis實(shí)現(xiàn)統(tǒng)一鑒權(quán)認(rèn)證

    本文主要講了Spring Security文章,如果有什么需要改進(jìn)的地方還請大佬指出?? ??作者簡介:大家好,我是青衿?? ??博客首頁:CSDN主頁放風(fēng)講故事 ??每日一句:努力一點(diǎn),優(yōu)秀一點(diǎn) Spring Security Spring Security是一個(gè)強(qiáng)大且高度可定制的身份驗(yàn)證和訪問控制框架。它是保護(hù)基

    2024年02月05日
    瀏覽(20)
  • 【Spring Security】Spring Security 認(rèn)證與授權(quán)

    【Spring Security】Spring Security 認(rèn)證與授權(quán)

    在前面的章節(jié)中,我們沿用了Spring Security默認(rèn)的安全機(jī)制:僅有一個(gè)用戶,僅有一種角色。在實(shí)際開發(fā)中,這自然是無法滿足需求的。本章將更加深入地對Spring Security迚行配置,且初步使用授權(quán)機(jī)制。 3.1 默認(rèn)數(shù)據(jù)庫模型的認(rèn)證與授權(quán) 3.1.1、資源準(zhǔn)備 首先,在controller包下新建

    2024年02月05日
    瀏覽(18)
  • Spring Boot + Vue的網(wǎng)上商城之springsecurity+jwt+redis實(shí)現(xiàn)用戶權(quán)限認(rèn)證實(shí)現(xiàn)

    在網(wǎng)上商城項(xiàng)目中,用戶的安全性是非常重要的。為了實(shí)現(xiàn)用戶權(quán)限認(rèn)證和安全校驗(yàn),我們可以使用Spring Security、JWT和Redis來實(shí)現(xiàn)。本篇博客將詳細(xì)介紹后端和前臺(tái)的實(shí)現(xiàn)過程,并提供相應(yīng)的代碼案例。 當(dāng)用戶點(diǎn)擊登錄按鈕時(shí),前端發(fā)送一個(gè)POST請求到后端的登錄接口,傳遞用

    2024年02月07日
    瀏覽(21)
  • spring security認(rèn)證授權(quán)流程

    認(rèn)證和授權(quán)是任何安全體系中的兩個(gè)主要功能,而在現(xiàn)代Web開發(fā)中,Spring Security是最受歡迎和廣泛使用的安全框架之一。在本篇文章中,我們將全面介紹Spring Security的認(rèn)證和授權(quán)機(jī)制,并提供詳細(xì)的步驟和示例代碼。 ?一、認(rèn)證(Authentication) 認(rèn)證的主要目的是驗(yàn)證用戶的身

    2024年02月15日
    瀏覽(21)
  • Spring Security進(jìn)行登錄認(rèn)證和授權(quán)

    Spring Security進(jìn)行登錄認(rèn)證和授權(quán)

    用戶首次登錄提交用戶名和密碼后spring security 的 UsernamePasswordAuthenticationFilter 把用戶名密碼封裝 Authentication 對象 然后內(nèi)部調(diào)用 ProvideManager 的 authenticate 方法進(jìn)行認(rèn)證,然后 ProvideManager 進(jìn)一步通過內(nèi)部調(diào)用 DaoAuthencationPriovider 的 authenticate 方法進(jìn)行認(rèn)證 DaoAuthencationPriovider 通過

    2024年02月11日
    瀏覽(22)
  • Spring Security 如何實(shí)現(xiàn)身份認(rèn)證和授權(quán)?

    Spring Security 如何實(shí)現(xiàn)身份認(rèn)證和授權(quán)?

    Spring Security 是一個(gè)開源的安全框架,提供了基于權(quán)限的訪問控制、身份認(rèn)證、安全性事件發(fā)布等功能。在 Spring Boot 應(yīng)用中使用 Spring Security 可以非常方便地實(shí)現(xiàn)用戶身份認(rèn)證和授權(quán)。 Spring Security 實(shí)現(xiàn)身份認(rèn)證的主要方式是使用認(rèn)證過濾器鏈,該過濾器鏈包含多個(gè)過濾器,用

    2024年02月06日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包