我们有一个简单的应用程序,只有两个使用者和5个端点。对于一个端点,我需要某种身份验证方法。我喜欢这样做的条纹方式,但我不知道如何在弹簧靴中构建它。“对 API 的身份验证是通过 HTTP 基本身份验证执行的,提供您的 API 密钥作为基本身份验证用户名值。您不需要提供密码。@Configuration@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http .authorizeRequests() .antMatchers("/qr") .hasRole("user") .and() .sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .httpBasic() .and() .csrf() .disable();}@Beanpublic 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;}@Beanpublic PasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();}}我试图从管理器.create用户中删除密码,但这不起作用。
1 回答

陪伴而非守候
TA贡献1757条经验 获得超8个赞
基本身份验证以 base64 编码形式组成。因此,您的用户必须具有等于空字符串的密码,基本身份验证才能正常工作。您还可以摆脱BCrypt密码编码器并使用NoOp密码编码器,因为您不使用密码值。user:password
添加回答
举报
0/150
提交
取消