Posts

Showing posts with the label OAuth2

A New Collection of Thoughtful Learning Apps — Now Available on iOS & Android

Image
I’m excited to share a set of mobile apps I’ve recently completed and published on both the Google Play Store and the Apple App Store. These apps are designed with a simple goal in mind: to make meaningful, structured content more accessible, whether you’re studying theology or improving your English vocabulary. 📱 Now Available on Both Platforms All apps are live and available for download: Google Play Developer Page: https://play.google.com/store/apps/dev?id=5835943159853189043 Apple App Store Developer Page: https://apps.apple.com/ca/developer/q-z-l-corp/id1888794100 📖 Theology & Confession Study Apps For those interested in Reformed theology and classical Christian teachings, I’ve developed a series of apps that present foundational texts in a clean, focused reading format: The Belgic Confession Canons of Dort Heidelberg Catechism Westminster Shorter Catechism Each app is designed to provide a distraction-free experience, making it easier to read, reflect, and revisit these im...

一次 403 错误的排查实录:Spring Cloud Gateway、WebFlux、PingFederate 与 CORS

Image
一次 403 错误的排查实录:Spring Cloud Gateway、WebFlux、PingFederate 与 CORS 一次真实的线上排错记录:一个看似 OAuth / JWT / Spring Security 的 403,最终却是 CORS 问题。 背景 我们在一次系统集成过程中,遇到了一个非常令人困惑的问题,涉及以下组件: Spring Cloud Gateway Spring Boot WebFlux 后端服务 PingFederate(OIDC / OAuth2) 本地运行的 React 前端( http://localhost:4200 ) 整体请求流程如下: 用户通过 PingFederate 登录(SSO) 前端获取 access token 前端发起 POST 请求 → Gateway → 后端服务 在以下场景中,一切都运行正常: 使用 Postman 直接调用后端 绕过 Gateway,直接调用后端 所有组件都在本地运行 但一旦请求通过 部署在 OpenShift 中的 Spring Cloud Gateway ,所有 POST 请求都会失败,并返回: 403 Forbidden 为什么这个问题如此迷惑 完全相同的 access token,在 Postman 中可以正常使用 GET 请求成功,POST 请求失败 系统中没有配置任何 role 或 scope 校验 不同环境下 401 / 403 的表现不一致 JWT 的 issuer、audience、签名全部正确 所有线索一开始都指向 OAuth 或 PingFederate 的配置问题——但这个判断是错误的。 关键线索:问题是如何被定位出来的 1. Postman 成功,浏览器失败 同一个请求,在不同客户端表现完全不同: Postman → 成功 浏览器(经 Gateway)→ 403 这一步非常关键,它强烈暗示: 问题并不在 token 本身 。 2. 在 Postman 中加上 Origin 头,请求立刻失败 我们在 Postman 中手动加入以下 header: O...

Debugging 403 Errors with Spring Cloud Gateway, WebFlux, PingFederate, and CORS

Image
Debugging 403 Errors with Spring Cloud Gateway, WebFlux, PingFederate, and CORS A real-world postmortem on a confusing 403 that turned out not to be OAuth, JWT, or Spring Security — but CORS. Background We recently ran into a frustrating issue while integrating: Spring Cloud Gateway Spring Boot WebFlux backend PingFederate (OIDC / OAuth2) A React frontend running locally ( http://localhost:4200 ) The request flow looked like this: User logs in via PingFederate (SSO) Frontend receives an access token Frontend sends POST requests → Gateway → Backend service Everything worked perfectly when: Calling the backend directly via Postman Calling the backend directly without the gateway Running everything locally But once the request went through Spring Cloud Gateway in OpenShift , all POST requests failed with: 403 Forbidden Why This Was Confusing The same access token worked in Postman GET requests succeeded, POST requests fa...