我有一个Spring Boot应用程序,我使用Kong作为API网关。
我想用SpringDoc OpenAPI记录我的应用程序的RESTAPI。
当我独立运行Spring Boot应用程序时,一切都在本地运行得很好,但当访问Kong后面的Swagger/OpenAPI UI时,我面临一个问题。
这是我的kong.yml:
services:
- name: foo
url: http://localhost:9000/foo
routes:
- name: foo-route
paths:
- /local/api/foo
methods:
- GET
- POST
- PUT
- OPTIONS
- DELETE
- PATCH
- HEAD
假设kong位于8000端口,而我的Spring应用程序位于9000端口。
当我在<代码>http://localhost:8000/local/api/foo/swagger-用户界面。html,我被重定向到http://localhost:8000/foo/swagger-用户界面/索引。html?configUrl=/foo/v3/api docs/swagger config,路径错误。
如何解决此问题?
找到了解决方案!
在Spring Boot方面,由于我使用的是高于2.2的版本,所以只需要以下bean:
@Bean
ForwardedHeaderFilter forwardedHeaderFilter() {
return new ForwardedHeaderFilter();
}
以及此配置:
server:
forward-headers-strategy: framework
在Kong方面,由于我使用的版本过低(2.0.3),我需要将以下插件添加到我的kong.yml
配置文件中:
plugins:
- name: request-transformer
service: foo
config:
add:
headers:
- x-forwarded-prefix:/local/api/foo
据我了解,在较新的Kong版本中不需要这样做:只要主机具有受信任的ip,就会自动添加标头x-转发-前缀
。
问题内容: 我有支持Hateoas的Spring Data Rest。它在代理后面。 后端网址: 代理网址: 当我查询代理url时,例如,我得到一个href带有domain链接的响应。我需要域名。 问题答案: 从Spring-Boot 2.1 / Spring 5.1开始,Spring将处理X-Forwarded- *的职责从Spring HATEOAS转移到Spring MVC。 现在,你需要注
我已经用声明式方法配置了kong。我的服务和路由有类似的配置。 我的服务和路线已注册,我可以看到如下响应: Kong日志文件出错: 我按照这篇文章来解决它。但是没有成功。 https://docs.konghq.com/0.13.x/getting-started/configuring-a-service/ https://www.jerney.io/secure-apis-kong-keycl
我通过kong创建了一个新的API配置。。(虚拟API)如下所示。 卷曲-i-X POST\ --网址http://localhost:8001/apis/\--data'name=myRESTapi'\--data'hosts=myRESTapi。com'\--data'上游url=http://demo1592110.mockable.io/hello' HTTP/1.1 201创建日期: F
有没有办法在香港添加APIendpoint而不使用curl?我已经使用docker compose在docker容器中启动并运行了Kong,我希望能够在容器旋转上传递一个配置文件(或您所拥有的),该文件概述了我希望设置的endpoint。这可能吗?这是我找到的最接近解决方案:http://blog.toast38coza.me/kong-up-and-running-part-2-defining
问题内容: 只是想知道注销后可以在哪里设置重定向到的URL。我知道您可以设置登录网址。我想重定向到我的主页。 问题答案: 一种更简单的方法: 在你的登出请求网址中添加“下一个”参数。例如: 然后,注销视图将为你解决问题。 对于登录后重定向,你只需在settings.py中进行设置即可:
在Liferay IDE中创建portlet时,我已将其配置为具有Liferay的配置模式。作为回应,wizart创建了包含以下文本的JSP文件: 如何从Liferay调用此页面查看此文本?单击扳手图标并选择时,我看不到类似的内容。 更新 路径设置正确,因为它是由向导设置的。 问题是如何通过鼠标从Web界面调用这个JSP?