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

Spring Boot 如何使用 Spring Security 進(jìn)行認(rèn)證和授權(quán)

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

Spring Boot 如何使用 Spring Security 進(jìn)行認(rèn)證和授權(quán)

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

Spring Boot 如何使用 Spring Security 進(jìn)行認(rèn)證和授權(quán)

添加 Spring Security 依賴

首先,我們需要在 pom.xml 文件中添加 Spring Security 依賴:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

在上面的依賴中,我們添加了 spring-boot-starter-security 依賴,它包含了 Spring Security 的所有必要依賴。

配置 Spring Security

接下來,我們需要配置 Spring Security。在 Spring Boot 應(yīng)用程序中,可以使用 Java 配置或 XML 配置來配置 Spring Security。在本文中,我們將使用 Java 配置。

我們需要?jiǎng)?chuàng)建一個(gè)名為 SecurityConfig 的類,并添加 @EnableWebSecurity 注解。這個(gè)注解啟用了 Spring Security,并自動(dòng)配置了基本的 Web 安全性。

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
}

接下來,我們可以重寫 configure 方法,來配置 Spring Security。例如,我們可以配置基本的認(rèn)證和授權(quán):

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
          .authorizeRequests()
            .antMatchers("/", "/home").permitAll()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .anyRequest().authenticated()
            .and()
          .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
          .logout()
            .permitAll();
    }
    
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
          .inMemoryAuthentication()
            .withUser("user").password("{noop}password").roles("USER")
            .and()
            .withUser("admin").password("{noop}password").roles("USER", "ADMIN");
    }
}

在上面的代碼中,我們使用 authorizeRequests 方法配置了 URL 的訪問規(guī)則。我們?cè)试S所有用戶訪問根路徑和 /home 路徑,只有具有 ADMIN 角色的用戶才可以訪問 /admin 路徑。對(duì)于其他 URL,需要進(jìn)行認(rèn)證。

我們使用 formLogin 方法配置了基于表單的身份驗(yàn)證。我們指定了登錄頁面的 URL 為 /login,并允許所有用戶訪問該 URL。我們還使用 logout 方法配置了基于表單的注銷,允許所有用戶注銷。

最后,我們使用 configureGlobal 方法配置了用戶的身份驗(yàn)證。在這里,我們使用了基于內(nèi)存的身份驗(yàn)證,指定了兩個(gè)用戶 useradmin,并設(shè)置了他們的密碼和角色。

示例代碼

下面是一個(gè)完整的示例代碼,演示了如何在 Spring Boot 中使用 Spring Security 進(jìn)行認(rèn)證和授權(quán):

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
          .authorizeRequests()
            .antMatchers("/", "/home").permitAll()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .anyRequest().authenticated()
            .and()
          .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
          .logout()
            .permitAll();
    }
    
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
          .inMemoryAuthentication()
            .withUser("user").password("{noop}password").roles("USER")
            .and()
            .withUser("admin").password("{noop}password").roles("USER", "ADMIN");
    }
}

@Controller
public class HomeController {
    
    @GetMapping("/")
    public Stringhome() {
        return "home";
    }
    
    @GetMapping("/admin")
    public String admin() {
        return "admin";
    }
    
    @GetMapping("/login")
    public String login() {
        return "login";
    }
}

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

在上面的示例代碼中,我們創(chuàng)建了一個(gè)名為 HomeController 的控制器,它包含了三個(gè)處理程序方法:homeadminlogin。homeadmin 方法返回字符串,表示視圖的名稱,而 login 方法返回登錄頁面的視圖名稱。

我們還創(chuàng)建了一個(gè)名為 Application 的 Spring Boot 應(yīng)用程序類,并在其中定義了 main 方法,以啟動(dòng)應(yīng)用程序。

在上面的示例代碼中,我們使用了 Thymeleaf 模板引擎來渲染視圖。我們還可以使用其他模板引擎,例如 JSP 或 FreeMarker。

運(yùn)行示例代碼

要運(yùn)行上面的示例代碼,我們需要執(zhí)行以下步驟:

  1. 在命令行中進(jìn)入應(yīng)用程序的根目錄。
  2. 執(zhí)行 mvn spring-boot:run 命令,以啟動(dòng)應(yīng)用程序。
  3. 在瀏覽器中訪問 http://localhost:8080/home,可以看到 home 視圖。
  4. 在瀏覽器中訪問 http://localhost:8080/admin,由于當(dāng)前用戶沒有 ADMIN 角色,會(huì)被重定向到登錄頁面。
  5. 在瀏覽器中訪問 http://localhost:8080/login,輸入用戶名和密碼,即可登錄并訪問 admin 視圖。

結(jié)論

在本文中,我們介紹了如何在 Spring Boot 中使用 Spring Security 進(jìn)行認(rèn)證和授權(quán)。我們添加了 Spring Security 依賴,配置了基本的認(rèn)證和授權(quán),并提供了示例代碼。通過這些步驟,我們可以輕松地將 Spring Security 集成到我們的 Spring Boot 應(yīng)用程序中,以確保應(yīng)用程序的安全性。文章來源地址http://www.zghlxwxcb.cn/news/detail-502651.html

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

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

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

相關(guān)文章

  • 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日
    瀏覽(22)
  • 系列六、Spring Security中的認(rèn)證 & 授權(quán) & 角色繼承

    系列六、Spring Security中的認(rèn)證 & 授權(quán) & 角色繼承

    ? ? ? ? 關(guān)于Spring Security中的授權(quán),請(qǐng)參考【系列一、認(rèn)證 授權(quán)】,這里不再贅述。 1.4.1、admin登錄 (一) 登錄 (二) 訪問sayHi(登錄就可以訪問) (三)訪問/admin/helloWorld接口(需要擁有admin角色)? (四)訪問/dba/helloWorld接口(需要擁有dba角色,admin自動(dòng)繼承dba角色)

    2024年02月01日
    瀏覽(28)
  • 權(quán)限管理詳解:認(rèn)證、授權(quán)及Spring Security配置解析

    權(quán)限管理詳解:認(rèn)證、授權(quán)及Spring Security配置解析

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

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

    后端進(jìn)階之路——綜述Spring Security認(rèn)證,授權(quán)(一)

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

    2024年02月14日
    瀏覽(21)
  • 搭建spring security oauth2認(rèn)證授權(quán)服務(wù)器

    搭建spring security oauth2認(rèn)證授權(quán)服務(wù)器

    下面是在spring security項(xiàng)目的基礎(chǔ)上搭建spring security oauth2認(rèn)證授權(quán)服務(wù)器 spring security oauth2認(rèn)證授權(quán)服務(wù)器主要需要以下依賴 Spring Security對(duì)OAuth2默認(rèn)可訪問端點(diǎn) ?/oauth/authorize? ??:申請(qǐng)授權(quán)碼code,涉及類? ?AuthorizationEndpoint? ? ?/oauth/token? ??:獲取令牌token,涉及類?

    2024年01月21日
    瀏覽(20)
  • Spring Security—OAuth2 客戶端認(rèn)證和授權(quán)

    關(guān)于 JWT Bearer 客戶端認(rèn)證的進(jìn)一步詳情,請(qǐng)參考OAuth 2.0客戶端認(rèn)證和授權(quán)許可的?JSON Web Token (JWT)簡(jiǎn)介。 JWT Bearer 客戶端認(rèn)證的默認(rèn)實(shí)現(xiàn)是? NimbusJwtClientAuthenticationParametersConverter ,它是一個(gè)? Converter ,通過在? client_assertion ?參數(shù)中添加簽名的JSON Web Token(JWS)來定制令牌請(qǐng)求

    2024年02月08日
    瀏覽(25)
  • 【深入淺出 Spring Security(十三)】使用 JWT 進(jìn)行前后端分離認(rèn)證(附源碼)

    【深入淺出 Spring Security(十三)】使用 JWT 進(jìn)行前后端分離認(rèn)證(附源碼)

    JWT 全稱 Java web Token,在此所講述的是 JWT 用于身份認(rèn)證,用服務(wù)器端生成的JWT去替代原始的Session認(rèn)證,以提高安全性。 JWT本質(zhì)是一個(gè)Token令牌,是由三部分組成的字符串,分別是頭部(header)、載荷(payload)和簽名(signature)。頭部一般包含該 JWT 的基本信息,例如所使用的

    2024年02月12日
    瀏覽(25)
  • 系列四、Spring Security中的認(rèn)證 & 授權(quán)(前后端不分離)

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

    1.3.1、概述 ? ? ? ? 前后端不分離的登錄成功回調(diào)有兩個(gè)關(guān)鍵方法,即:defaultSuccessUrl 和?successForwardUrl。那么它們之間的區(qū)別是什么呢?? ? ? ? (1)successForwardUrl 表示不管你是從哪里來的,登錄后一律跳轉(zhuǎn)到 successForwardUrl 指定的地址。例如 successForwardUrl 指定的地址為/l

    2024年01月19日
    瀏覽(33)
  • Springboot +spring security,自定義認(rèn)證和授權(quán)異常處理器

    在Spring Security中異常分為兩種: AuthenticationException 認(rèn)證異常 AccessDeniedException 權(quán)限異常 我們先給大家演示下如何自定義異常處理器,然后再結(jié)合源碼幫助大家進(jìn)行分析 如何創(chuàng)建一個(gè)SpringSecurity項(xiàng)目,前面文章已經(jīng)有說明了,這里就不重復(fù)寫了。 3.1配置SecurityConfig 這里主要是

    2024年02月07日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包