gpt4 book ai didi

java - 让 Swagger 提供用户和密码以对我的 Tomcat 应用程序进行身份验证

转载 作者:行者123 更新时间:2023-11-28 23:30:05 25 4
gpt4 key购买 nike

我有一个部署在 Tomcat 上的 Java 应用程序(它本身位于 Docker 容器中)。 Tomcat 需要身份验证,要求用户和密码。用户和密码写入 tomcat/tomcat-users.xml 和 web.xml 中

<security-constraint>
<web-resource-collection>
<web-resource-name>RESTful Application Service</web-resource-name>
<url-pattern>/rest/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>restservice</role-name>
</auth-constraint>
</security-constraint>

这一切都按计划进行。

该应用程序是 swaggerized,我想使用 swagger-ui ( https://github.com/swagger-api/swagger-ui ) 连接它。然而,这是行不通的。我明白了

$ curl -I "http://localhost:8080/my-rest-service/rest/swagger.json"
HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
Cache-Control: private
Expires: XXXXXXXX
WWW-Authenticate: Basic realm="RESTful Application Service"
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 951
Date: XXXXXXXX

如果我通过在 web.xml 中注释上面提到的安全约束来禁用密码保护,它确实有效。

我该怎么做才能 Swagger 为我的 Tomcat/Tomcat 应用程序提供用户和密码?


来自 Saúl Martínez Vidals:

在 dist/index.html 中,我必须操作该部分

  function addApiKeyAuthorization(){
var key = encodeURIComponent($('#input_apiKey')[0].value);
if(key && key.trim() != "") {
var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("api_key", key, "query");
window.swaggerUi.api.clientAuthorizations.add("api_key", apiKeyAuth);
log("added key " + key);
}
}

但究竟如何呢?

来自 Adding Basic Authorization for Swagger-UI我觉得可能是

  function addApiKeyAuthorization(){
var key = encodeURIComponent($('#input_apiKey')[0].value);
if(key && key.trim() != "") {
var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("api_key", key, "query");
window.swaggerUi.api.clientAuthorizations.add("api_key", apiKeyAuth);
swaggerUi.api.clientAuthorizations.add("api_key", new SwaggerClient.ApiKeyAuthorization("Authorization", "Basic YWRtaW46dG9tY2F0=", "header"));
log("added key " + key);
}
}

YWRtaW46dG9tY2F0 来自 https://webnet77.net/cgi-bin/helpers/base-64.pl但这没有帮助。

最佳答案

您必须修改您的索引文件(dist/index.html) ,并编辑JS 代码以使用Custom Headers Parameters (它曾经存在于 2.x API 中)

类似于:

关于java - 让 Swagger 提供用户和密码以对我的 Tomcat 应用程序进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31658147/

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