簡體   English   中英

在Spring Boot中使用令牌保護API

[英]Securing a api with an token in Spring Boot

我們有一個只有兩個使用者和5個端點的簡單應用程序。 對於一個端點,我需要某種身份驗證方式。 我喜歡這樣做的條紋方式,但是我不知道如何在Spring Boot中構建它。

“通過HTTP基本身份驗證對API進行身份驗證。提供您的API密鑰作為基本身份驗證用戶名值。您無需提供密碼。”

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
http
    .authorizeRequests()
    .antMatchers("/qr")
    .hasRole("user")
    .and()
    .sessionManagement()
    .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
    .and()
    .httpBasic()
    .and()
    .csrf()
    .disable();
}

@Bean
public UserDetailsService userDetailsService() {
val encodedPassword = new BCryptPasswordEncoder().encode("test");

final InMemoryUserDetailsManager manager = new               InMemoryUserDetailsManager();
   manager.createUser(User.withUsername("admin").password(encodedPassword).roles("user").build());
           //manager.createUser(User.withUsername("admin").roles("user").build());

  return manager;
}

@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}

我試圖從manager.createUser刪除密碼,但這不起作用。

基本認證由base64編碼形式的user:password組成。 因此,您的用戶必須具有等於空字符串的密碼,才能使用基本身份驗證。 您也可以擺脫BCryptPasswordEncoder並使用NoOpPasswordEncoder,因為您不使用密碼值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM