[英]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.