我最新最全的文章都在 南瓜慢說 www.pkslow.com ,歡迎大家來喝茶!
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'
歡迎關注微信公眾號<南瓜慢說>,將持續為你更新...
多讀書,多分享;多寫作,多整理。