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

系列四、Spring Security中的認證 & 授權(前后端不分離)

這篇具有很好參考價值的文章主要介紹了系列四、Spring Security中的認證 & 授權(前后端不分離)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、Spring Security中的認證 & 授權(前后端不分離)

1.1、MyWebSecurityConfigurerAdapter

/**
 * @Author : 一葉浮萍歸大海
 * @Date: 2024/1/11 21:50
 * @Description:
 */
@Configuration
public class MyWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {

    /**
     * 密碼加密器
     * @return
     */
    @Bean
    PasswordEncoder passwordEncoder() {
        return NoOpPasswordEncoder.getInstance();
    }

    /**
     * 配置基于內存的用戶
     * @param auth
     * @throws Exception
     */
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .withUser("admin")
                .password("123456")
                .roles("admin")

                .and()

                .withUser("root")
                .password("123456")
                .roles("root");
    }

    /**
     * 靜態(tài)資源過濾
     * @param web
     * @throws Exception
     */
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/js/**", "/css/**","/images/**");
    }
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/helloWorld")
                .permitAll()
                .anyRequest()
                .authenticated()

                .and()

                .formLogin()
                /**
                 * 自定義登錄頁面,覆蓋Spring Security默認的登錄頁
                 * 僅僅配置loginPage("/login.html")其實對應兩個請求,即:
                 *      GET:http://localhost:7001/login.html,用來獲取登錄頁面
                 *      POST:http://localhost:7001/login.html,處理登錄請求
                 * 也可以將登錄頁面和處理登錄請求分開配置,如下:
                 */
                .loginPage("/login.html")
                .loginProcessingUrl("/login")
                /**
                 * 登錄成功回調:
                 *      defaultSuccessUrl("/login/successGET")
                 *      successForwardUrl("/login/successPOST")
                 */
                .defaultSuccessUrl("/login/successGET")
                /**
                 * 登錄失敗回調:
                 *      failureUrl("/login/failGET")
                 *      failureForwardUrl("/login/failPOST")
                 */
                .failureForwardUrl("/login/failPOST")

                .and()

                /**
                 * 注銷登錄配置
                 *     1、默認注銷的 URL 是 /logout,是一個 GET 請求,我們可以通過 logoutUrl 方法來修改默認的注銷 URL
                 *     2、logoutRequestMatcher 方法不僅可以修改注銷 URL,還可以修改請求方式,實際項目中,這個方法和 logoutUrl 任意設置一個即可
                 *          .logoutRequestMatcher(new AntPathRequestMatcher("/logout","POST"))
                 *     3、logoutSuccessUrl 表示注銷成功后要跳轉的頁面
                 *     4、deleteCookies 用來清除 cookie
                 *     5、clearAuthentication 和 invalidateHttpSession 分別表示清除認證信息和使 HttpSession 失效,默認可以不用配置,默認就會清除
                 */
                .logout()
                .logoutUrl("/logout")
                .logoutSuccessUrl("/login.html")
                .deleteCookies()
                .clearAuthentication(true)
                .invalidateHttpSession(true)
                .permitAll()

                .and()

                .csrf()
                .disable();
    }

}

1.2、LoginController

/**
 * @Author : 一葉浮萍歸大海
 * @Date: 2024/1/11 22:37
 * @Description: 登錄成功 & 失敗 & 注銷登錄相關配置
 */
@RequestMapping("/login")
@RestController
public class LoginController {

    @GetMapping("/successGET")
    public R successGET() {
        return R.ok().data("登錄成功【GET】");
    }

    @PostMapping("/successPOST")
    public R successPOST() {
        return R.ok().data("登錄成功【POST】");
    }

    @GetMapping("/failGET")
    public R failGET() {
        return R.error().data("登錄失敗【GET】");
    }

    @PostMapping("/failPOST")
    public R failPOST() {
        return R.error().data("登錄失敗【POST】");
    }

    @GetMapping("/logoutGET")
    public R logoutGET() {
        return R.ok().data("注銷成功【GET】");
    }

    @PostMapping("/logoutPOST")
    public R logoutPOST() {
        return R.ok().data("注銷成功【POST】");
    }

}

1.3、登錄成功回調

1.3.1、概述

? ? ? ? 前后端不分離的登錄成功回調有兩個關鍵方法,即:defaultSuccessUrl 和?successForwardUrl。那么它們之間的區(qū)別是什么呢?? ? ? ?

(1)successForwardUrl 表示不管你是從哪里來的,登錄后一律跳轉到 successForwardUrl 指定的地址。例如 successForwardUrl 指定的地址為/login/successPOST,你在瀏覽器地址欄輸入http://localhost:7001/helloWorld,結果因為沒有登錄,會重定向到登錄頁面,即login.html頁面,當你登錄成功之后,就會服務端跳轉到/login/successPOST;或者你直接就在瀏覽器輸入了登錄頁面地址,登錄成功后也是來到/login/successPOST;
(2)
defaultSuccessUrl 有一個重載的方法,先說一個參數(shù)的 defaultSuccessUrl 方法,如果我們在 defaultSuccessUrl 中指定登錄成功的跳轉頁面為/login/successGET,此時分兩種情況,如果你是直接在瀏覽器中輸入的登錄地址,登錄成功后,就直接跳轉到/login/successGET,如果你是在瀏覽器中輸入了其他地址,例如?http://localhost:7001/helloWorld,結果因為沒有登錄,又重定向到登錄頁面,此時登錄成功后,就不會來到/login/successGET?,而是來到?/helloWorld頁面;?
(3)
defaultSuccessUrl 還有一個重載的方法,第二個參數(shù)如果不設置默認為 false,也就是我們上面的的情況,如果手動設置第二個參數(shù)為 true,則 defaultSuccessUrl 的效果和successForwardUrl 一致;

注意事項:

? ? 一般情況下defaultSuccessUrl 和?successForwardUrl只需配置一個即可,根據(jù)自己公司實際情況進行選擇。

坑:? ? ? ??? ?

? ?defaultSuccessUrl對應的接口需為GET、successForwardUrl對應的接口需為POST,如上LoginController #successGET和successPOST:

1.4、登錄失敗回調

1.4.1、概述

????????前后端不分離的登錄失敗回調也有兩個關鍵方法,即:failureForwardUrl 和?failureUrl。那么它們之間的區(qū)別是什么呢?? ? ? ?

failureForwardUrl登錄失敗之后會發(fā)生服務端跳轉,failureUrl則是在登錄失敗之后,會發(fā)生重定向。

系列四、Spring Security中的認證 & 授權(前后端不分離),Spring Security OAuth2.0系列,Spring Security,OAuth2.0

1.5、注銷登錄

1.5.1、概述

/**
?* 注銷登錄配置
?* ? ? 1、默認注銷的 URL 是 /logout,是一個 GET 請求,我們可以通過 logoutUrl 方法來修改默認的注銷 URL
?* ? ? 2、logoutRequestMatcher 方法不僅可以修改注銷 URL,還可以修改請求方式,實際項目中,這個方法和 logoutUrl 任意設置一個即可
?* ? ? ? ? ?.logoutRequestMatcher(new AntPathRequestMatcher("/logout","POST"))
?* ? ? 3、logoutSuccessUrl 表示注銷成功后要跳轉的頁面
?* ? ? 4、deleteCookies 用來清除 cookie
?* ? ? 5、clearAuthentication 和 invalidateHttpSession 分別表示清除認證信息和使 HttpSession 失效,默認可以不用配置,默認就會清除
?*/

1.5.2、配置

如上。?文章來源地址http://www.zghlxwxcb.cn/news/detail-806393.html

到了這里,關于系列四、Spring Security中的認證 & 授權(前后端不分離)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【Spring Security】Spring Security 認證與授權

    【Spring Security】Spring Security 認證與授權

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

    2024年02月05日
    瀏覽(19)
  • spring security認證授權流程

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

    2024年02月15日
    瀏覽(21)
  • Spring Security進行登錄認證和授權

    Spring Security進行登錄認證和授權

    用戶首次登錄提交用戶名和密碼后spring security 的 UsernamePasswordAuthenticationFilter 把用戶名密碼封裝 Authentication 對象 然后內部調用 ProvideManager 的 authenticate 方法進行認證,然后 ProvideManager 進一步通過內部調用 DaoAuthencationPriovider 的 authenticate 方法進行認證 DaoAuthencationPriovider 通過

    2024年02月11日
    瀏覽(22)
  • Springboot +spring security,前后端分離時的security處理方案(一)

    在前后端分離這樣的開發(fā)模式下,前后端的交互都是通過 JSON 來進行數(shù)據(jù)傳遞的,無論登錄成功還是失敗,都不會有服務端跳轉或者客戶端跳轉之類的操作。 也就是說無論登錄成功還是失敗,服務端都會返回一段登錄成功或失敗的 JSON 信息給前端,前端收到JSON之后來決定是

    2024年02月07日
    瀏覽(23)
  • Spring Security 如何實現(xiàn)身份認證和授權?

    Spring Security 如何實現(xiàn)身份認證和授權?

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

    2024年02月06日
    瀏覽(21)
  • Spring Boot 如何使用 Spring Security 進行認證和授權

    Spring Boot 如何使用 Spring Security 進行認證和授權

    在 Web 應用程序中,認證和授權是非常重要的功能。Spring Security 是一個基于 Spring 框架的強大的安全框架,它提供了完整的認證和授權解決方案,并且可以輕松地集成到 Spring Boot 應用程序中。本文將介紹如何在 Spring Boot 中使用 Spring Security 進行認證和授權,并提供示例代碼。

    2024年02月11日
    瀏覽(37)
  • 權限管理詳解:認證、授權及Spring Security配置解析

    權限管理詳解:認證、授權及Spring Security配置解析

    深入探討權限管理的重要性與實現(xiàn)方式,包括認證、授權概念,基于角色和資源的訪問控制方案,以及Spring Security框架的概述和快速入門指南。

    2023年04月10日
    瀏覽(22)
  • 后端進階之路——綜述Spring Security認證,授權(一)

    后端進階之路——綜述Spring Security認證,授權(一)

    「作者主頁」 :雪碧有白泡泡 「個人網(wǎng)站」 :雪碧的個人網(wǎng)站 「推薦專欄」 : ★ java一站式服務 ★ ★ 前端炫酷代碼分享 ★ ★ uniapp-從構建到提升 ★ ★ 從0到英雄,vue成神之路 ★ ★ 解決算法,一個專欄就夠了 ★ ★ 架構咱們從0說 ★ ★ 數(shù)據(jù)流通的精妙之道★ ★后端進

    2024年02月14日
    瀏覽(21)
  • Springboot前后端不分離

    當前項目前后端都在一起時,避免一個一個controller的寫使用配置文件進行映射

    2024年02月12日
    瀏覽(16)
  • 搭建spring security oauth2認證授權服務器

    搭建spring security oauth2認證授權服務器

    下面是在spring security項目的基礎上搭建spring security oauth2認證授權服務器 spring security oauth2認證授權服務器主要需要以下依賴 Spring Security對OAuth2默認可訪問端點 ?/oauth/authorize? ??:申請授權碼code,涉及類? ?AuthorizationEndpoint? ? ?/oauth/token? ??:獲取令牌token,涉及類?

    2024年01月21日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包