Java 在Spring Boot中使用令牌保护api
我们有一个简单的应用程序,只有两个使用者和5个端点。对于一个端点,我需要某种身份验证方法。我喜欢这样做的条纹方式,但我不知道如何在spring boot中构建它 “通过HTTP Basic Auth执行对API的身份验证。请提供API密钥作为基本身份验证用户名值。无需提供密码。”Java 在Spring Boot中使用令牌保护api,java,rest,spring-boot,authentication,Java,Rest,Spring Boot,Authentication,我们有一个简单的应用程序,只有两个使用者和5个端点。对于一个端点,我需要某种身份验证方法。我喜欢这样做的条纹方式,但我不知道如何在spring boot中构建它 “通过HTTP Basic Auth执行对API的身份验证。请提供API密钥作为基本身份验证用户名值。无需提供密码。” 我试图从manager.createUser中删除密码,但这不起作用。基本身份验证由base64编码形式的user:password组成。 因此,您的用户必须具有等于空字符串的密码才能进行基本身份验证。 您还可以去掉B
我试图从manager.createUser中删除密码,但这不起作用。基本身份验证由base64编码形式的
user:password
组成。
因此,您的用户必须具有等于空字符串的密码才能进行基本身份验证。
您还可以去掉BCryptPasswordEncoder并使用,因为您不使用密码值 基本身份验证由base64编码形式的
用户:密码
组成。
因此,您的用户必须具有等于空字符串的密码才能进行基本身份验证。
您还可以去掉BCryptPasswordEncoder并使用,因为您不使用密码值
@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();
}
}