我正在做一个微型服务文档。我们的项目使用承载令牌来验证流。
一切似乎都很好,只是招摇过市增加了 Bearer: XXXXXX
请求头中的令牌。
我的问题是我必须发送邮件头 Authorization: bearer XXXXXXX
我该怎么做?我用Spring Boot招摇。
package XXXXXXX.config;
import static springfox.documentation.builders.PathSelectors.regex;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Value("${keycloak-role.app}")
private String roleApp;
@Bean
public Docket swaggerApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("getnet.gs.controller"))
.build()
.apiInfo(metaData())
.securitySchemes(Arrays.asList(apiKey()))
.securityContexts(Collections.singletonList(securityContext()));
}
private ApiKey apiKey() {
return new ApiKey("Bearer", "Authorization", "header");
}
private SecurityContext securityContext() {
return SecurityContext.builder().securityReferences(defaultAuth()).forPaths(PathSelectors.regex("/.*")).build();
}
private List<SecurityReference> defaultAuth() {
final AuthorizationScope authorizationScope = new AuthorizationScope(this.roleApp, "Credenciais do APP (TERMINAL)");
final AuthorizationScope[] authorizationScopes = new AuthorizationScope[]{authorizationScope};
return Collections.singletonList(new SecurityReference("Bearer", authorizationScopes));
}
private ApiInfo metaData() {
ApiInfo apiInfo = new ApiInfo(
"XXX- MS log",
"XXXAPI MS log",
"1.0",
"Terms of service",
new Contact("XXX", "https://confluence.XXXX.com.br:8444/#all-updates", "XXXX@getnXXXXet.com.br"),
"Apache License Version 2.0",
"https://confluence.XXXX.com.br:8444/#all-updates");
return apiInfo;
}
}
对于请求:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Bearer: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0Smd1Y0t6NVZ4RWNnWXFXQW1yTnFCd0dITFJ5ekZxRGJYTHZ4NzRfZzY0In0.eyJqdGkiOiIzZmFiMjBmYy1mNDQ0LTQyY2EtYjA4MS04ZTBhYmUyNTBhZGUiLCJleHAiOjE2MTk0NjQ0OTMsIm5iZiI6MCwiaWF0IjoxNjE5NDY0MTkzLCJpc3MiOiJodHRwOi8vMTgwLjEzNS4xNjEuMTE6ODA4MC9hdXRoL3JlYWxtcy9tYXN0ZXIiLCJhdWQiOiJnZXRzdG9yZS1tb2JpbGUtdGVtcCIsInN1YiI6ImQ2NDMyMjcxLTA5MDQtNDlhOC1hZjMyLTVlYjZkM2UzMzE5MCIsInR5cCI6IkJlYXJlciIsImF6cCI6ImdldHN0b3JlLW1vYmlsZS10ZW1wIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiNDQ1NzRiODUtZDI3Ny00OWZhLThmMjAtMGE5NTE0MTRiYWZkIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6W10sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJ1bWFfYXV0aG9yaXphdGlvbiIsIkVTVEFCRUxFQ0lNRU5UTyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sImNsaWVudElkIjoiZ2V0c3RvcmUtbW9iaWxlLXRlbXAiLCJjbGllbnRIb3N0IjoiMTAuMTgxLjExMi4yMTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzZXJ2aWNlLWFjY291bnQtZ2V0c3RvcmUtbW9iaWxlLXRlbXAiLCJjbGllbnRBZGRyZXNzIjoiMTAuMTgxLjExMi4yMTUiLCJlbWFp' -d '{ ..... }' 'http://localhost:40070/log'
它的工作原理是这样的:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0Smd1Y0t6NVZ4RWNnWXFXQW1yTnFCd0dITFJ5ekZxRGJYTHZ4NzRfZzY0In0.eyJqdGkiOiIzZmFiMjBmYy1mNDQ0LTQyY2EtYjA4MS04ZTBhYmUyNTBhZGUiLCJleHAiOjE2MTk0NjQ0OTMsIm5iZiI6MCwiaWF0IjoxNjE5NDY0MTkzLCJpc3MiOiJodHRwOi8vMTgwLjEzNS4xNjEuMTE6ODA4MC9hdXRoL3JlYWxtcy9tYXN0ZXIiLCJhdWQiOiJnZXRzdG9yZS1tb2JpbGUtdGVtcCIsInN1YiI6ImQ2NDMyMjcxLTA5MDQtNDlhOC1hZjMyLTVlYjZkM2UzMzE5MCIsInR5cCI6IkJlYXJlciIsImF6cCI6ImdldHN0b3JlLW1vYmlsZS10ZW1wIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiNDQ1NzRiODUtZDI3Ny00OWZhLThmMjAtMGE5NTE0MTRiYWZkIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6W10sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJ1bWFfYXV0aG9yaXphdGlvbiIsIkVTVEFCRUxFQ0lNRU5UTyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sImNsaWVudElkIjoiZ2V0c3RvcmUtbW9iaWxlLXRlbXAiLCJjbGllbnRIb3N0IjoiMTAuMTgxLjExMi4yMTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzZXJ2aWNlLWFjY291bnQtZ2V0c3RvcmUtbW9iaWxlLXRlbXAiLCJjbGllbnRBZGRyZXNzIjoiMTAuMTgxLjExMi4yMTUiLCJlbWFp' -d '{ ..... }' 'http://localhost:40070/log'
暂无答案!
目前还没有任何答案,快来回答吧!