在我的Spring Boot应用程序上,我试图用OpenApi 3替换Swagger 2。在SwaggerConfiguration类的当前实现中,
@Configuration
@EnableSwagger2
public class SwaggerConfig {
...
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.securitySchemes(Collections.singletonList(securityScheme()))
.host(host)
.securityContexts(Collections.singletonList(securityContext()));
}
@Bean
public SecurityConfiguration security() {
return SecurityConfigurationBuilder.builder()
.clientId(swaggerCredentialsProvider.getClientId())
.clientSecret(swaggerCredentialsProvider.getClientSecret())
.scopeSeparator(" ")
.useBasicAuthenticationWithAccessCodeGrant(true)
.build();
}
private SecurityScheme securityScheme() {
GrantType grantType = new AuthorizationCodeGrantBuilder()
.tokenEndpoint(new TokenEndpoint(tokenEndpoint, "code"))
.tokenRequestEndpoint(new TokenRequestEndpoint(tokenRequestEndpoint,
swaggerCredentialsProvider.getClientId(),
swaggerCredentialsProvider.getClientSecret()))
.build();
return new OAuthBuilder().name("spring_oauth")
.grantTypes(Collections.singletonList(grantType))
.scopes(Arrays.asList(scopes())).build();
}
...
}
在这个示例代码中,我给出了clientId和clientSecret,它将自动显示在swagger ui授权页面上:
在我的OpenApi配置的新实现中
@Bean
public OpenAPI customOpenAPI() {
OAuthFlow oAuthFlow = new OAuthFlow()
.tokenUrl(tokenEndpoint)
.authorizationUrl(tokenRequestEndpoint)
.scopes(new Scopes().addString(scope, ""));
return new OpenAPI()
.components(new Components()
.addSecuritySchemes("security_auth", new SecurityScheme()
.flows(new OAuthFlows().authorizationCode(oAuthFlow))
.type(SecurityScheme.Type.OAUTH2).scheme("oauth2")))
.info(new Info()
.title(appName)
.version(appVersion)
.description(appDescription));
}
我没有找到设置这些信息的方法。我试图在application.property文件中设置springdoc.swagger-ui.oauth.clientid,但是clientId没有显示。
如何使用OpenApi 3设置clientId和clientSecret,以便在授权页面上自动显示?
您可以通过应用程序属性设置客户端id和客户端机密。我想你可能把客户id和客户机密的路径弄错了。属性是“客户端id”和“客户端机密”,而不是“clientId”和“clientSecret”
springdoc:
swagger-ui:
oauth:
client-id: your-client-id-value
client-secret: your-client-secret-value
我使用中的此选项在服务器中运行: 我得到这个错误: 分析INI配置文件时出错:未知的选项安全性。
我可以看到一些贝宝付款已经完成使用贝宝clientId, ClientSecret而其他类型的付款通常nvp付款是使用用户名,密码和签名付款。使用客户端ID和秘密付款与使用用户名、密码和签名付款有什么区别。请对此作出解释。
我在这里看到了一些有用的信息:https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html,但没有看到将自定义设置为非敏感的特定方式。
对于工作,我正在处理一个Java项目,我们需要将授权令牌传递给每个请求标头。 在我的文件中,我有以下内容: 这将启用一个”按钮,我可以单击该按钮: ...这会将令牌插入到每个请求的标头中。 然而,在Swagger文档或其他地方的示例中没有任何关于如何自动插入auth令牌的文档。目标是通过调用内部API(使用active directory进行身份验证)来检索身份验证令牌,并将该令牌自动应用于请求头
我正在用Neon.2制作一个eclipse插件。这个插件有一个首选项页面,它也有一些eclipse帮助。我希望能够单击“首选项”对话框上的问号按钮,并使我的帮助出现在“首选项”对话框中,就像它为内置的首选项所做的那样。 在搜索了几个关于preferences系统和帮助系统的教程之后,我找不到一个如何实现这一点的示例。此外,搜索许多eclipse文档、wiki页面和源代码项目(如Java开发工具和其
问题内容: 如何在用户端显示PHP代码。有点像w3School吗? 让我们说一个灰色区域div,然后在其中显示代码而不激活它吗? 问题答案: 您可以在html中使用html实体,它将呈现为<?php 您可以使用htmlspecialchars对代码进行编码以使用html实体。