我有一个名为country-service的微服务,它使用oAuth2受到保护。当我直接向该服务发送请求(包括我的JWT承载令牌)时,一切正常:
server:
port: 8081
spring:
database:
driverClassName: org.postgresql.Driver
datasource:
url: jdbc:postgresql://localhost:5432/vue-boot-country
username: postgres
password: postgres
jpa:
hibernate:
ddl-auto: validate
database-platform: org.hibernate.dialect.PostgreSQLDialect
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
我还有一个api-gateway(Zuul代理):
@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class VueBootApiGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(VueBootApiGatewayApplication.class, args);
}
}
除了这两个文件没有其他文件
server:
port: 8765
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
zuul:
routes:
vue-boot-country-service: /api/country/**
add-proxy-headers: true
注意:当我从资源服务器上删除oAuth2安全性时,Zuul代理似乎可以工作。
有人知道我在这里做错了什么吗?
这与zuuls所谓的“敏感”头有关,比如“授权”。对传递到内部的所有请求进行筛选...
我不知道,如果设置头已经在使用以下配置:
zuul:
ignoredHeaders:
- authorization
如果没有,您可以定义一个Zuul过滤器bean来手动管理:
@Component
public class RelayTokenFilter extends ZuulFilter{
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 10000;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext context = RequestContext.getCurrentContext();
@SuppressWarnings("unchecked") Set<String> ignoredHeaders = (Set<String>) context.get("ignoredHeaders");
ignoredHeaders.remove("authorization");
return null;
}
}
我试图在Spring Boot的工作流程中实现上述架构。 Web客户端通过Zuul Proxy向资源服务器(微服务endpoint)发出请求。 Zuul Proxy重定向到oaust2服务器进行身份验证。 如果请求是否经过身份验证,Oau2将重定向到Zuul Proxy。 如果未通过身份验证,Zuul会使用未经身份验证的响应重定向Web客户端。 如果经过身份验证,Zull代理会重定向到请求的微服务
我想控制运行在Eureka服务器中的微服务。我为此使用了spring-boot-admin,但我在访问关于跟踪、日志等的信息时遇到了错误... 我得到的错误是 同样的事情也发生在所有endpoint上,比如映射,env和所有接受健康
产品-服务:具有受保护路由的简单下游服务 jwt-resoure-server:当包含在下游服务中时,使其成为提取jwt令牌并将其设置在安全contex中的资源服务器的jar。 尤里卡-服务:发现服务 zuul-server:边缘服务器 Okta是我的auth服务器 我已经将oauth grant类型设置为be-Authorization code(我知道对于spa来说,建议使用隐式grant类型
我对以下涉及oauth2的流程有一些问题: webapp1.xyz.com是具有授权代码授予类型的注册客户端,以下是当前流程: 用户登录并使用授权码重定向到webapp1.xyz.com webapp1.xyz.com交换访问令牌的授权代码并将其存储到会话 webapp1.xyz.com服务器端需要通过传递访问令牌调用webapp2.xyz.com api webapp1.xyz.com具有SPA
我有这样的回应,当谈到检查用户未经授权。 有没有可能从未经授权的响应中删除路径?因为它没有为用户提供有价值的信息 }
我正在尝试通过Linkedin Auth2从java web应用程序进行连接: null “client_id”和“client_secret”是我应用程序上的“客户端API”和“秘密API”。 第一个和第二个请求之间的时间少于20秒。