gpt4 book ai didi

java - 登录Spring Security后如何返回Basic token?

转载 作者:行者123 更新时间:2023-12-02 01:50:41 25 4
gpt4 key购买 nike

我在我的 Springboot 项目中使用基本授权。成功登录后,我可以检查后端网页,看到 Network 选项卡中有一个 Authorization,其值为 Basic YmNyeX323G5yb2xsdGVjaC5jb206cyE5c2RzZA

然后我可以使用值 Basic YmNyeX323G5yb2xsdGVjaC5jb206cyE5c2RzZA 通过将值设置为 Authorization 值通过 Postman 向服务器发出请求。

所以,我的问题是,登录后如何返回这个值?

这是我的SecurityConfiguration.java 文件:

@Configuration
@EnableConfigurationProperties
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
MongoUserDetailsService userDetailsService;

@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests()
.antMatchers("/", "/register").permitAll().anyRequest().authenticated()
.and().logout(logout -> logout
.permitAll()
.clearAuthentication(true)
.logoutUrl("/logout")
.logoutSuccessUrl("/")
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID"))
.httpBasic()
.and().sessionManagement().disable();
}

@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}

@Override
public void configure(AuthenticationManagerBuilder builder) throws Exception {
builder.userDetailsService(userDetailsService);
}

可以返回上述基本授权 token 的端点是什么样的?

最佳答案

你不需要,因为这不是基本身份验证的工作方式。

“ token ”(或者更确切地说是 header )在客户端构建并发送到服务器。 token 无非是用户名密码,由:分隔,然后进行Base64编码。这是 HTTP 标准的一部分,仅由浏览器提供/完成。因此,在输入用户名/密码后,您的浏览器将创建一个包含该编码 token 的 Authorization

所以你进入了

用户名:bcry}nrolltech.com
密码:s!9sdsd

变为 YmNyeX323G5yb2xsdGVjaC5jb206cyE5c2RzZA(bcry}nrolltech.com:s!9sdsd 以 Base64 编码)。作为 Authorization: YmNyeX323G5yb2xsdGVjaC5jb206cyE5c2RzZA 发送到服务器。哪个可以使用相反的过程来解码它。 (就像我检索用户名/密码所做的那样)。

token 随后在服务器上解码,在 ; 上拆分,并将分离的用户名和密码传递给身份验证机制进行验证。

因此生成此“ token ”的不是服务器,也不是 token ,而只是编码的用户名和密码。

关于 WikiPedia 有更深入的信息关于基本身份验证的工作原理。 RFC2617RFC7617非常详细地描述了协议(protocol)。

关于java - 登录Spring Security后如何返回Basic token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70387334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com