spring—有没有一种方法可以在org.springframework.web.client.restemplate中设置用户

tv6aics1  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(296)

我正在尝试用 username 以及 password 的RESTAPI使用者代码 org.springframework.web.client.RestTemplate ```
curl -i -k --location -u username:userpass
--request GET http://myserver:80/rest/api/2/project --header 'Accept: application/json'
--header 'Content-Type: application/json' --data-raw ''

但是这样的参数username:password is restemplate不支持(如果我错了请纠正我)还有什么其他选项可以做到这一点?我用的是SpringBoot2.4.3
uidvcgyl

uidvcgyl1#

如果你使用 -u 或者 --user ,curl将凭据编码为base64并生成如下标头: -H Authorization: Basic <Base64EncodedCredentials> 有一种方法可以用您想要实现的内容构建resttemplate。为此,只需在配置类中配置一个单例restemplatebean。
在2.1.0版本之前 basicAuthorization() 以前的spring引导版本使用basicauthorization()

@Bean
RestTemplate rest(RestTemplateBuilder restTemplateBuilder) {
    restTemplateBuilder.basicAuthorization("username", "userpass").build();
}

从2.1.0开始 basicAuthorization() 已被弃用,并在以后的版本中删除。你可以用 basicAuthentication() 相反
较新版本只有basicauthentication()

@Bean
    RestTemplate rest(RestTemplateBuilder restTemplateBuilder) {
        restTemplateBuilder.basicAuthentication("username", "userpass").build();
    }

相关问题