我想截取对遗留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示例吗?
答案 0 :(得分:2)
我发现pac4j,特别是j2e-pac4j
和pac4j-oidc
的组合是将OIDC插入普通旧servlet应用程序的最简单方法。
j2e-pac4j
实现为一个vanilla Java servlet过滤器(实际上是两个,因为你需要一个回调处理程序),它插入web.xml
来拦截请求。这些过滤器引用您提供的Java类来配置OIDC客户端。
Okta的开发者博客有一个article on using pac4j-oidc with Play framework,这似乎是一种合理的Java方式,因为Spring Security感觉太复杂或难以在遗留应用程序内部设置。