我是微服务的新手,我正在尝试使用微服务架构风格创建一个示例应用程序。
我的情况是我有两个名为客户和供应商的微服务,其中实现了弹簧安全性。
为了访问这些微服务,我需要传递两个单独的URL,即
所以我引入了Zuul作为访问这些URL的API网关。
网关属性文件(application.properties
)是:
eureka.client.enabled=false
server.port=8080
zuul.routes.customer.url=http://localhost:8090
zuul.routes.vendor.url=http://localhost:8091
security.oauth2.client.access-token-uri= http://localhost:8090/oauth/token
security.oauth2.client.access-token-uri= http://localhost:8091/oauth/token
security.oauth2.client.id=client
security.oauth2.client.client-secret=secret
执行此操作后,我可以访问与客户和供应商有关的所有网址,但我无法访问基于OAuth的网址。 那么,任何人都可以帮我解决如何让我的网关在其中包含基于OAuth的令牌?
以下是关于OAuth及其在网关和没有网关时的行为的示例示例及其输出。
没有网关URL的示例-1: -
input URL: -
http://localhost:8090/oauth/token?password=abcd&username=test5&grant_type=client_credentials&scope=read%20write
Header: -
Basic Auth
userName : client
password : secret
output: -
{
"access_token": "522a6b21-19bb-4833-90be-69d0c02f220a",
"token_type": "bearer",
"expires_in": 99999,
"scope": "read write"
}
带网关网址的示例-2: -
输入网址: -
http://localhost:8080/oauth/token?password=abcd&username=test5&grant_type=client_credentials&scope=read%20write
Header: -
Basic Auth
userName : client
password : secret
output: -
{
"timestamp": 1506918637823,
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/oauth/token"
}
所以有人可以帮我告诉我这里我做错了什么吗?
我已按照以下链接实施我的网关。 Reference to API gateway implementation code
提前致谢。