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

SpringBoot原理分析 | 安全框架:Security

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot原理分析 | 安全框架:Security。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

SpringBoot原理分析 | 安全框架:Security,spring boot,安全,spring

??wei_shuo的個(gè)人主頁

??wei_shuo的學(xué)習(xí)社區(qū)

??Hello World !


Security

Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架;提供一組可以在Spring應(yīng)用上下文中配置的Bean,充分利用Spring IoC,DI(控制反轉(zhuǎn)Inversion of Control ,DI:Dependency Injection 依賴注入)和AOP(面向切面編程)功能,為應(yīng)用系統(tǒng)提供聲明式的安全訪問控制功能,減少了為企業(yè)系統(tǒng)安全控制編寫大量重復(fù)代碼的工作;

認(rèn)證和授權(quán)

  • 依賴導(dǎo)入
 		<!--security-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
  • 認(rèn)證和授權(quán)config/SecurityConfig.java
thymeleafpackage com.wei.config;


import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
    //授權(quán)
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //首頁所有人可以訪問,功能業(yè)只有有對應(yīng)權(quán)限的人才能訪問

        //請求授權(quán)規(guī)則
        http.authorizeRequests()
                .antMatchers("/").permitAll()
                .antMatchers("/level1/**").hasRole("vip1")
                .antMatchers("/level2/**").hasRole("vip2")
                .antMatchers("/level3/**").hasRole("vip3");

        //沒有權(quán)限默認(rèn)跳到登錄頁面
        http.formLogin();
    }

    //認(rèn)證
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
                .withUser("weishuo").password(new BCryptPasswordEncoder().encode("123456")).roles("vip2","vip3")
                .and()
                .withUser("root").password(new BCryptPasswordthymeleafEncoder().encode("123456")).roles("vip1","vip2","vip3")
                .and()
                .withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");
    }
}

注銷和權(quán)限控制

  • Config/SecurityConfig.java
        //開啟注銷功能,注銷成功跳轉(zhuǎn)到首頁
        http.csrf().disable();   //關(guān)閉csrf功能
        http.logout().logoutSuccessUrl("/");

security-thymeleaf整合

  • 導(dǎo)入依賴
    <!--security-thymeleaf整合包-->
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
  • index.html:命名空間導(dǎo)入
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
  • index.html:配置登錄、未登錄顯示,隱藏
<!--登錄、注銷-->
            <div class="right menu">

                <!--如果未登錄-->
                <div sec:authorize="!isAuthenticated()">
                    <a class="item" th:href="@{/toLogin}">
                        <i class="address card icon"></i> 登錄
                    </a>
                </div>


                <!--如果已登錄:用戶名、注銷-->
                <div sec:authorize="isAuthenticated()">
                    <a class="item">
                        <!--獲取用戶名字-->
                        用戶名:<span sec:authentication="name"></span>
                        <!--獲取用戶權(quán)限-->
                        角色:<span sec:authentication="principal.authorities"></span>
                    </a>
                </div>

                <div sec:authorize="isAuthenticated()">
                    <a class="item" th:href="@{/logout}">
                        <i class="sign-out icon"></i>注銷
                    </a>
                </div>

            </div>
  • index.html:配置角色頁面動(dòng)態(tài)顯示
 <div class="column" sec:authorize="hasRole('vip1')">……</div>
 <div class="column" sec:authorize="hasRole('vip2')">……</div>
 <div class="column" sec:authorize="hasRole('vip3')">……</div>

Remember me

  • Config/SecurityConfig.java
        //記住我功能,自定義接受參數(shù)
        http.rememberMe().rememberMeParameter("remember");

首頁定制

沒有權(quán)限默認(rèn)跳到登錄頁面,登錄頁定制

  • .loginPage("/toLogin"):將用戶重定向到指定的登錄頁面進(jìn)行登錄;
  • .usernameParameter("username"):從用戶提交的表單中獲取用戶名時(shí)使用的參數(shù)名;
  • .passwordParameter("password"):從用戶提交的表單中獲取密碼時(shí)使用的參數(shù)名;
  • .loginProcessingUrl("/login"):指定表單登錄提交的 URL,用于處理用戶提交的登錄表單數(shù)據(jù)
//沒有權(quán)限默認(rèn)跳到登錄頁面,登錄頁定制
        http.formLogin().loginPage("/toLogin").usernameParameter("username").passwordParameter("password")
            .loginProcessingUrl("/login");

?? 結(jié)語:創(chuàng)作不易,如果覺得博主的文章賞心悅目,還請——點(diǎn)贊??收藏??評論??


SpringBoot原理分析 | 安全框架:Security,spring boot,安全,spring文章來源地址http://www.zghlxwxcb.cn/news/detail-541379.html

到了這里,關(guān)于SpringBoot原理分析 | 安全框架:Security的文章就介紹完了。如果您還想了解更多內(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)文章

  • SpringSecurity源碼分析(一) SpringBoot集成SpringSecurity即Spring安全框架的加載過程

    SpringSecurity源碼分析(一) SpringBoot集成SpringSecurity即Spring安全框架的加載過程

    ? ? ? Spring Security是一個(gè)強(qiáng)大的并且高度可定制化的訪問控制框架。?它基于spring應(yīng)用。 Spring Security是聚焦于為java應(yīng)用提供授權(quán)和驗(yàn)證的框架。像所有的spring項(xiàng)目一樣,Spring Security真正的強(qiáng)大在于可以非常簡單的拓展功能來實(shí)現(xiàn)自定義的需求。 ? ? ? 在分析SpringBoot集成的Sp

    2024年02月03日
    瀏覽(19)
  • SpringSecurity框架快速搭建(SpringBoot整合Security)

    SpringSecurity框架快速搭建(SpringBoot整合Security)

    目錄 Common類 Config類 CorsConfig(解決跨域問題) RedisConfig (Redis數(shù)據(jù)庫配置) Spring Security (配置安全功能的類) expression類(Expression 類通常用于權(quán)限控制和安全策略的定義) SGExpressionRoot(判斷用戶是否具有某個(gè)權(quán)限) Filter類 JwtAuthenticationTokenFilter(解析token看是否放行) Handler類

    2024年02月09日
    瀏覽(21)
  • 【Spring Security】安全框架學(xué)習(xí)(十二)

    【Spring Security】安全框架學(xué)習(xí)(十二)

    6.0 其他權(quán)限校驗(yàn)方法 我們前面都是使用@PreAuthorize注解,然后在在其中使用的是hasAuthority方法進(jìn)行校驗(yàn)。Spring Security還為我們提供了其它方法. 例如:hasAnyAuthority,hasRole,hasAnyRole,等。 這里我們先不急著去介紹這些方法,我們先去理解hasAuthority的原理,然后再去學(xué)習(xí)其他方法就

    2024年02月07日
    瀏覽(23)
  • 【Spring Security】安全框架學(xué)習(xí)(八)

    3.0 權(quán)限系統(tǒng)的作用 例如一個(gè)學(xué)校圖書館的管理系統(tǒng),如果是普通學(xué)生登錄就能看到借書還書相關(guān)的功能,不可能讓他看到并且去使用添加書籍信息,刪除書籍信息等功能。但是如果是一個(gè)圖書館管理員的賬號登錄了,應(yīng)該就能看到并使用添加書籍信息,刪除書籍信息等功能

    2024年02月09日
    瀏覽(21)
  • 安全框架Spring Security是什么?如何理解Spring Security的權(quán)限管理?

    安全框架Spring Security是什么?如何理解Spring Security的權(quán)限管理?

    大家好,我是卷心菜。本篇主要講解Spring Security的基本介紹和架構(gòu)分析,如果您看完文章有所收獲,可以三連支持博主哦~,嘻嘻。 ?? 作者簡介: 在校大學(xué)生一枚,Java領(lǐng)域新星創(chuàng)作者,Java、Python正在學(xué)習(xí)中,期待和大家一起學(xué)習(xí)一起進(jìn)步~ ?? 個(gè)人主頁:我是一棵卷心菜的

    2024年02月02日
    瀏覽(24)
  • Shiro和Spring Security安全框架對比

    Shiro和Spring Security安全框架對比

    Apache Shiro是Java的一個(gè)安全框架。目前,使用Apache Shiro的人越來越多,因?yàn)樗喈?dāng)簡單。與Spring Security對比,Shiro可能沒有Spring Security做的功能強(qiáng)大,但是在實(shí)際工作時(shí)可能并不需要那么復(fù)雜的東西,所以使用小而簡單的Shiro就足夠了。下面對這兩個(gè)安全框架進(jìn)行了對比,可以

    2024年02月10日
    瀏覽(21)
  • spring boot中常用的安全框架 Security框架 利用Security框架實(shí)現(xiàn)用戶登錄驗(yàn)證token和用戶授權(quán)(接口權(quán)限控制)

    spring boot中常用的安全框架 Security框架 利用Security框架實(shí)現(xiàn)用戶登錄驗(yàn)證token和用戶授權(quán)(接口權(quán)限控制)

    spring boot中常用的安全框架 Security 和 Shiro 框架 Security 兩大核心功能 認(rèn)證 和 授權(quán) 重量級 Shiro 輕量級框架 不限于web 開發(fā) 在不使用安全框架的時(shí)候 一般我們利用過濾器和 aop自己實(shí)現(xiàn) 權(quán)限驗(yàn)證 用戶登錄 Security 實(shí)現(xiàn)邏輯 輸入用戶名和密碼 提交 把提交用戶名和密碼封裝對象

    2024年02月06日
    瀏覽(31)
  • 【Spring Security】讓你的項(xiàng)目更加安全的框架

    【Spring Security】讓你的項(xiàng)目更加安全的框架

    ????歡迎來到我的CSDN主頁!???? ??我是Java方文山,一個(gè)在CSDN分享筆記的博主。???? ??推薦給大家我的專欄《Spring Security》。???? ??點(diǎn)擊這里,就可以查看我的主頁啦!???? Java方文山的個(gè)人主頁 ??如果感覺還不錯(cuò)的話請給我點(diǎn)贊吧!???? ??期待你的加入,一

    2024年02月04日
    瀏覽(22)
  • Spring Security的API Key實(shí)現(xiàn)SpringBoot 接口安全

    Spring Security的API Key實(shí)現(xiàn)SpringBoot 接口安全

    Spring Security 提供了各種機(jī)制來保護(hù)我們的 REST API。其中之一是 API 密鑰。API 密鑰是客戶端在調(diào)用 API 調(diào)用時(shí)提供的令牌。 在本教程中,我們將討論如何在Spring Security中實(shí)現(xiàn)基于API密鑰的身份驗(yàn)證。 API Keys 一些REST API使用API密鑰進(jìn)行身份驗(yàn)證。API密鑰是一個(gè)標(biāo)記,用于向API客戶

    2024年03月15日
    瀏覽(15)
  • Spring Boot 優(yōu)雅集成 Spring Security 5.7(安全框架)與 JWT(雙令牌機(jī)制)

    Spring Boot 優(yōu)雅集成 Spring Security 5.7(安全框架)與 JWT(雙令牌機(jī)制)

    本章節(jié)將介紹 Spring Boot 集成 Spring Security 5.7(安全框架)。 ?? Spring Boot 2.x 實(shí)踐案例(代碼倉庫) Spring Security 是一個(gè)能夠?yàn)榛?Spring 的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。 它提供了一組可以在 Spring 應(yīng)用上下文中配置的 Bean,充分利用了 Spring

    2024年02月12日
    瀏覽(53)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包