spring-security之Spring Security Oauth2 客户端ClientAuthenticationProcessingFilter

zhujiabin 阅读:26 2025-06-02 22:19:02 评论:0

我正在开发 spring-security-oauth2-1.0.3.RELEASE,尝试设置一个 oauth 客户端来让用户通过 google 进行身份验证。

我在这上面花了一段时间,但仍然没有找到太多解释清楚的好文章。

我正在做的是像这样将 OAuth2ClientAuthenticationProcessingFilter 放入过滤器链中:

<http xmlns="http://www.springframework.org/schema/security" 
    use-expressions="true" pattern="/oauth.html" auto-config="true"> 
    <sec:intercept-url pattern="/**" access="isFullyAuthenticated()" /> 
    <custom-filter ref="oauth2ClientFilter" position="CAS_FILTER" /> 
    <sec:custom-filter ref="googleAuthFilter" after="CAS_FILTER" /> 
</http> 

自定义过滤器:googleAuthFilter 用于保护我的 URL。

阅读OAuth2ClientAuthenticationProcessingFilter源码,需要引用

  1. OAuth2RestOperations(rest template)引用Oauth服务器资源(google信息)
  2. ResourceServerTokenServices(来自 Spring-security-oauth 库提供程序包)。

现在我很困惑。 Spring-security-oauth 分为两部分:客户端和提供者。

既然我只是设置一个 Oauth 客户端,为什么我需要从 Oauth 提供程序包中引用一个类?

另外,我应该如何设置 ResourceServerTokenServices?现在我正在尝试使用默认的实现。因为 DefaultTokenServices 再次需要引用

  1. token 库
  2. ClientDetailsS​​ervice
  3. token 增强器

到目前为止,我尝试了所有默认实现:

  • TokenStore: InMemoryTokenStore
  • ClientDetailsS​​ervice: InMemoryClientDetailsS​​ervice
  • TokenEnhancer:TokenEnhancerChain

它似乎不起作用......

谢谢!

请您参考如下方法:

我想我可能会写点什么。但是您使用的版本很旧,最新版本的 Spring Security OAuth2 非常易于使用并且应用广泛 - 许多文档。让我们搜索一下 :D

http://jhasaket.blogspot.com/2014/09/securing-spring-mvc-application-using.html


标签:Spring
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号