用于遗留 servlet 应用程序的 OIDC 过滤器

wrs*_*der 4 java spring spring-security openid-connect

我想拦截对遗留 Java servlet/JSP 应用程序的请求,并使用 OpenID Connect (OIDC) 协议对用户进行身份验证。

我看过 Spring Security 和 SAML 的示例,其中springSecurityFilterChain在 XML 中显式配置并包装了现有的非 Spring servlet。但是我见过的大多数 Java OIDC 示例都使用 Spring Boot,这对我来说不是一个选择。(例如:https : //developer.okta.com/blog/2017/12/18/spring-security-5-oidc)

你能指出在 Java webapps 中使用 OIDC 客户端的任何非 Spring Boot 示例吗?

wrs*_*der 5

我发现,pac4j和具体相结合j2e-pac4j,并pac4j-oidc为堵塞OIDC成一个纯老servlet应用的最简单的方法。

j2e-pac4j被实现为一个普通的 Java servlet 过滤器(实际上是两个,因为你需要一个回调处理程序),它插入web.xml来拦截请求。这些过滤器引用您提供的用于配置 OIDC 客户端的 Java 类。

Okta 的开发者博客有一篇关于在 Play 框架中使用 pac4j-oidc的文章,考虑到 Spring Security 感觉太复杂或难以在遗留应用程序中设置,这对于 Java 来说似乎也是一种合理的方式。