- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Spring Cloud 和 CSRF 保护方面遇到了一些问题。
我使用 Spring Cloud Security、OAuth2 等保护了我的应用程序(网关和注册服务)。
我授予每个人 (permitAll) 对/signup 的访问权限,这是网关路由到实际注册服务的地方。我还授予了对注册服务器本身的所有人的访问权限。这按预期工作。
让我头疼的是CSRF保护。网关和注册服务都自己创建了一个 CSRF token 。来自网关的 token 将被发送到客户端,并且来自注册服务的 token 丢失(在网关的某处)。
如果我向注册服务发布一些内容,CSRF 保护就会启动并说 token 为空,或者实际值与预期值不匹配,如果我尝试重用来自网关的值,该值在 HTTP 中可用标题。
我已经在注册服务上禁用 CSRF,但它似乎不是正确的解决方案,因为它仅在有人从客户端发回 token 时才有效,例如 Angular SPA。当我尝试从浏览器提交表单(在注册服务上呈现)时,由于缺少 _csrf 参数而失败。
如果我在注册服务上激活 CSRF 并将 _csrf 参数添加到表单中,网关的 CSRF 保护就会启动并说实际 token 与预期的不匹配,这是绝对正确的,因为实际 token 是一个来自注册服务,预期的 token 来自网关。
我可以在网关上禁用 CSRF,但这将导致我必须在 REST 客户端或 SPA 使用的每个服务上配置 CSRF 内容。
我已经在 HttpSecurity.csrf() 配置中尝试了 ignoreAntMatchers() ,我可以在其中排除特定路径,但这对我也没有帮助。期望值是完全不同的东西。似乎为 POST 请求创建了一个新 session 。
那么我有没有机会在网关上使用 CSRF 并同时使用表单提交和 Zuul 的注册服务?
最佳答案
你应该能够让它工作:我认为应该在 Zuul 中禁用 CSRF,并且 Zuul 应该从服务转发原始 CSRF token 。
您是否尝试设置自定义“敏感标题”以避免丢失 token ?由于默认配置是删除任何“Cookie”和“Set-Cookie” header ,因此您需要对其进行更改:
zuul:
routes:
users:
path: /myusers/**
# This is the default value if not set
sensitiveHeaders: Cookie,Set-Cookie,Authorization
url: https://downstream
zuul:
routes:
users:
path: /myusers/**
sensitiveHeaders: Authorization
url: https://downstream
关于spring-security - Spring Cloud Netflix Zuul、CSRF 和表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37555985/
我有一个 spring boot 微服务,它需要基本的身份验证数据,即固定的用户 ID/密码(如管理员/密码)。我正在使用 Spring cloud netflix 生态系统来编排微服务。 祖尔 是我
我们的服务目前使用 spring cloud netflix zuul 作为我们的网关。 现在我们要支持websocket,所以我们需要将zuul 1迁移到zuul 2或spring cloud ga
使用 Zuul,我可以轻松定义在将请求转发到特定服务之前或之后激活的自定义过滤器。 有没有办法阻止请求在“预”过滤器级别转发,并立即将响应发送给客户端? 我知道“静态”过滤器可以做类似的事情,但我需要
通过 Zuul 向客户端发送请求时,Zuul 似乎更改了查询字符串。更具体地说,如果客户端应该收到一个 url 编码的查询字符串,Zuul 会对查询字符串进行一次解码。下面是一个具体的例子: 如果“h
我正在寻找一种可以在 API Gateway 中提供某种数据聚合的解决方案。我正在将 spring cloud netflix zuul 用于 API 网关。我使用 Spring Boot 创建了 3
我很难理解 Zuul 和 Ribbon 之间的联系。 我想我明白 Zuul 了。这是一个反向代理,我可以联系它来访问我的几个服务实例之一。它将使用循环算法或您对其进行的任何配置来选择正确的服务器。这是
我如何为多个 zuul 路由实现多个 zuulFallbackProvider。除了公开 restcontroller 并使用 hystrixcommand 实现方法之外,我看不到如何仅使用属性来做到
我是 Spring Cloud 的新手,在我的项目(使用 Spring Boot 构建的微服务项目)中,我使用了 Spring Cloud 版本 Brixton.RC2,并且运行良好。但是当我尝试将其
我在服务 A 和 B 前使用 Netflix Zuul 代理。 如何让 Zuul 代理根据传入请求中的 HTTP header 在 A 和 B 的路由之间进行选择? 最佳答案 您应该根据您的逻辑创建一
我读了 docs但我仍然不确定这两个属性之间的区别: zuul: ignored-headers: sensitive-headers: 如果您能用其他词来解释它,将不胜感激。 最佳答案 敏感
我想了解 Netflix Zuul2 和 Spring Cloud Gateway 之间的技术差异。 Spring Cloud Gateway 是异步的,Zuul2 也是如此 都支持Http2 都支持
我有以下简单服务: 交易核心服务和交易api服务。 transaction-api-service调用Transactions-core-service返回事务列表。 transaction-api-
主要问题是注册表的兼容性。如果没有,如何处理网关问题? 最佳答案 取决于你的意思。您可以在 Micronaut 应用程序前使用 Zuul 或 Spring Cloud Gateway 作为网关解决方案
我已经在 Eureka 服务器中注册了 UI 和后端应用程序。它已启动并正在运行(两个应用程序)。配置zuul application.yml: zuul: sensitive-headers:
我已经有一个基于微服务的应用程序运行在 Spring Cloud 上,并将 zuul 作为 API 网关,但由于公司用例,我们正在考虑更改为 Graphql 而不是传统的 Rest,因此我正在考虑为每
您好,特别是先生Josh Long !来自菲律宾的问候! 我只是想寻求有关 Zuul 问题的帮助。我正在使用 Config Server、Eureka Discovery、Zuul API Gatew
Zuul 屏蔽服务和指定路径 有时我们的一些后端服务并不想暴露出去 我们可以通过屏蔽服务或者路径的方式来进行实现: ### 网关配置 zuul: routes: dem
上图为一个微服务框架的简单示例,当有一个HTTP请求发送到服务器的时候,其实是先经过了Nginx的,再经过了网关,这里的网关就担任了拦截过滤的作用,既然拦截和过滤了,肯定就涉及到了请求的转发
Zuul:stripPrefix默认开启 true,去除 /** 前的所有前缀 SpringCloudGateway: 默认不开启,stripPrefix原理是过滤器,/a/b情况下, =1:去除/a
我们目前有一个直接的 Websocket 连接到一个后端 web 服务 来自我们的 UI 应用程序。现在,当我们尝试通过 Zuul(ApiGateway) 执行相同操作时,我们无法连接到后端服务 我们
我是一名优秀的程序员,十分优秀!