南瓜慢说官方网站

  • 首页
  • 文章汇总
  • 容器技术
  • SpringBoot-Cloud
  • 程序人生
  • 其它
  • 整理
  • 关于

  • 搜索
中间件 config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac 计划 Stream MongoDB Spring DevOps JVM String Map Set List 性能 Email Springboot 集合类 ArrayList Java
技术之前,先读诗书:

调试Http Basic认证,用base64加密解密

发表于 2021-01-14 | 分类于 其它 | 0 | 阅读次数 226

1 HTTP Basic认证

HTTP Basic认证是在HTTP 1.0就引入的认证方案,存在安全缺陷;但由于实现简单,仍有项目在用。

它主要通过请求头Authorization来做认证,格式为:

键:Authorization

值:Basic base64(username:password),即Basic 加密串,如Basic dXNlcjp1c2Vy。

Spring Security的配置可以为:

@EnableWebFluxSecurity
public class WebfluxSecurityConfig {
  @Bean
  public MapReactiveUserDetailsService userDetailsService() {
    UserDetails user = User.withDefaultPasswordEncoder()
      .username("user")
      .password("user")
      .roles("USER")
      .build();
    return new MapReactiveUserDetailsService(user);
  }

  @Bean
  public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
    http.httpBasic()
      .and()
      .authorizeExchange()
      .anyExchange().hasRole("USER")
      .and()
      .formLogin()
      .and()
      .csrf().disable();

    return http.build();
  }
}

2 如何加密解密

命令如下:

# 加密
$ echo -n 'user:user' | openssl base64
dXNlcjp1c2Vy

# 加密
$ echo -n 'user:user' | base64
dXNlcjp1c2Vy

# 加密
openssl base64 -in <infile> -out <outfile>

# 解密
$ echo -n 'dXNlcjp1c2Vy' | base64 -D

当然也可以通过代码加密/解密。

3 访问

3.1 Postman访问

通过Postman可以直接输入用户名和密码访问,其实它也是帮你自动加个请求头而已。所以要请求,自己不需要再添加请求头Authorization了,免得覆盖了。

3.2 命令行访问

通过curl访问如下:

$ curl http://localhost:8088/user/name -H 'Authorization:Basic dXNlcjp1c2Vy'

欢迎关注微信公众号<南瓜慢说>,将持续为你更新...

file

推荐阅读:
如何制定切实可行的计划并好好执行
容器技术(Docker-Kubernetes)
SpringBoot-Cloud相关
Https专题

  • 本文作者: 南瓜慢说
  • 本文链接: https://www.pkslow.com/archives/http-basic-authentication
  • 版权声明: 本博客所有文章除特别声明外,不可转载!
# 中间件 # config # Go # Private # Kubernetes # pkslow # Test # HTTPS # Redis # Docker # Mac # 计划 # Stream # MongoDB # Spring # DevOps # JVM # String # Map # Set # List # 性能 # Email # Springboot # 集合类 # ArrayList # Java
中间件 config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac 计划 Stream MongoDB Spring DevOps JVM String Map Set List 性能 Email Springboot 集合类 ArrayList Java
在Spring WebFlux的任何地方获取Request对象
Spring Data JPA的Audit功能,审计数据库的变更
  • 文章目录
  • 站点概览
南瓜慢说

南瓜慢说

多年Java开发,主要专注后端技术:Java/Spring/Springboot/微服务/大数据等。

多读书,多分享;多写作,多整理。

166 日志
7 分类
27 标签
RSS
0%
© 2020 — 2021 南瓜慢说 本站已挣扎运行:   粤ICP备20036375号