旧版servlet应用程序的OIDC过滤器

时间:2018-05-17 19:49:43

标签: java spring spring-security openid-connect oidc

我想截取对遗留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示例吗?

1 个答案:

答案 0 :(得分:2)

我发现pac4j,特别是j2e-pac4jpac4j-oidc的组合是将OIDC插入普通旧servlet应用程序的最简单方法。

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

Okta的开发者博客有一个article on using pac4j-oidc with Play framework,这似乎是一种合理的Java方式,因为Spring Security感觉太复杂或难以在遗留应用程序内部设置。