国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Security: Webflux 默認配置

luoyibu / 843人閱讀

摘要:默認配置所謂默認配置就是對不做任何配置讓它的自動配置起作用目的是對的默認行為有一個初步的直觀的了解第一步使用的創建項目項目創建完成會自動生成一個應用入口類第二步創建一個控制器啟動會在控制臺輸出中看到一個水機生成的格式的密碼最后打開即可顯示

默認配置
所謂默認配置, 就是對Spring Security不做任何配置. 讓它的自動配置起作用. 目的是對Spring Security 的默認行為有一個初步的直觀的了解.
第一步: 使用Intellj IDEASpring Initializr 創建項目

項目創建完成會自動生成一個應用入口類

package com.example.demowebfluxsecurityinmemory;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoWebfluxSecurityInMemoryApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoWebfluxSecurityInMemoryApplication.class, args);
    }
}
第二步: 創建一個控制器
package com.example.demowebfluxsecurityinmemory;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;

import java.security.Principal;
import java.util.Collections;
import java.util.Map;

@RestController
public class UserController {
    @GetMapping("/")
    public Mono> hello(Mono principal) {
        return principal
            .map(Principal::getName)
            .map(this::helloMessage);
    }

    private Map helloMessage(String username) {
        return Collections.singletonMap("message", "Hello " + username + "!");
    }
}

mvn spring-boot:run 啟動, 會在控制臺輸出中看到一個水機生成的UUID格式的密碼:

最后, 打開 http://localhost:8080/login 即可顯示登錄頁面, 默認用戶名稱為 user. 到這里, Spring Security 的默認設置的樣子就是這樣的, 現實場景中是不可能這么簡單的. 因此我們需要對它進行定制

定制 自定義配置(自定義用戶賬號)

添加一個配置類, 如下:

package com.example.demowebfluxsecurityinmemory;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;

@Configuration
public class SecurityConfig {
    @Bean
    public MapReactiveUserDetailsService userDetailsService() {
        UserDetails user = User.withDefaultPasswordEncoder()
            .username("user")
            .password("user")
            .roles("USER")
            .build();
        UserDetails admin = User.withDefaultPasswordEncoder()
            .username("admin")
            .password("admin")
            .roles("ADMIN")
            .build();
        return new MapReactiveUserDetailsService(user, admin);
    }
}

現在重啟服務器, 就可以使用自定義的用戶名和密碼登錄了.

ReactiveUserDetailsService 是Webflux Security的一個核心接口, 代表了Spring Security 安全體系中的用戶信息, 它只有一個接口方法Mono findByUsername(String username);

作用: 該接口方法的作用是從各種存儲中獲取用戶信息. 通過該接口拿到了用戶的信息, 就可以通過判斷用戶的狀態進行認證, 授權等操作.

這個接口的作用就一個: 獲取 UserDetails 對象.

package org.springframework.security.core.userdetails;
import reactor.core.publisher.Mono;
public interface ReactiveUserDetailsService {
    Mono findByUsername(String username);
}

MapReactiveUserDetailsService 實現了 UserDetailsService 接口, 其 findByUsername 方法是從一個 Map 中去獲取 UserDetails 對象. 因此能夠管理多個 UserDetails 對象.

其實現代碼為:

@Override
public Mono findByUsername(String username) {
    String key = getKey(username);
    UserDetails result = users.get(key);
    return result == null ? Mono.empty() : Mono.just(User.withUserDetails(result).build());
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/11374.html

相關文章

  • Spring Boot 參考指南(安全)

    摘要:用于發布身份驗證事件的。導入用于安全,配置身份驗證,這在非應用程序中也是相關的。安全出于安全考慮,除和之外的所有默認禁用,屬性可用于啟用。有關保護的其他信息可以在參考指南中找到。 28. 安全 如果在類路徑上有Spring Security,那么web應用程序默認是安全的,Spring Boot依賴Spring Security的內容協商策略來決定是使用httpBasic還是formL...

    XanaHopper 評論0 收藏0
  • Spring Boot 參考指南(端點)

    摘要:在發出經過身份驗證的請求時,被認為是端點的輸入,因此不會緩存響應。自定義端點對或的操作通過使用或通過自動公開。端點范圍請求范圍請求可以用于請求資源的一部分,當使用或時,操作將返回一個自動支持范圍請求的。 50. 端點 Actuator端點讓你監視和與應用程序交互,Spring Boot包含許多內置的端點,并允許你添加自己的端點。例如,health端點提供基本的應用程序健康信息。 可以啟...

    mozillazg 評論0 收藏0
  • Spring Boot Admin 2.1.0 全攻略

    摘要:并向注冊中心注冊,注冊地址為,最后將的所有端口暴露出來,配置如下在工程的啟動類加上注解,開啟的功能,加上注解開啟的功能。在啟動類加上注解,開啟的功能。 轉載請標明出處: https://www.fangzhipeng.com本文出自方志朋的博客 Spring Boot Admin簡介 Spring Boot Admin是一個開源社區項目,用于管理和監控SpringBoot應用程序。 ...

    TalkingData 評論0 收藏0
  • Spring MVC+Stomp+Security+H2 Jetty

    摘要:在逐步開發過程中,發現自己需求,用戶使用,頁面樣式,做得都不是很好。希望很和牛逼的人合作,一齊完善這個項目,能讓它變成可以使用的產品。自己也可以在此不斷學習,不斷累計新的知識,慢慢變強起來。 showImg(https://segmentfault.com/img/bVboKz5);#### 這一個什么項目 ##### 使用技術 Spring MVC Spring Security ...

    gitmilk 評論0 收藏0
  • 《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》

    摘要:下一代服務端開發下一代服務端開發第部門快速開始第章快速開始環境準備,,快速上手實現一個第章企業級服務開發從到語言的缺點發展歷程的缺點為什么是產生的背景解決了哪些問題為什么是的發展歷程容器的配置地獄是什么從到下一代企業級服務開發在移動開發領域 《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》 Kotlin + Spring Boot : 下一代 Java...

    springDevBird 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<