为了账号安全,请及时绑定邮箱和手机立即绑定

在春季启动中使用令牌保护 API

在春季启动中使用令牌保护 API

隔江千里 2022-09-28 10:13:46
我们有一个简单的应用程序,只有两个使用者和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



查看完整回答
反对 回复 2022-09-28
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号