Spring Security Oauth2 如何鉴别Token是否有效

本文探讨了在Spring Security Oauth2 2.3.5.RELEASE及Spring Boot 2.1.3环境下,如何鉴别Token的有效性。文章提到了Spring Security的过滤器链机制,并指出在OAuth2请求时,特定的过滤器链会处理这些请求。在分析日志和debug过程中,作者发现存在多个Token实例和授权问题。最终建议,直接使用Spring Security的相关API或手动检查来验证Token有效性是最直接的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本

Spring Security Oauth2 : 2.3.5.RELEASE
Spring Boot 2.1.3
Spring Boot Starter: 2.1.3.RELEASE

解决思路

Spring Security 的两大功能认证鉴权,通过FilterChain(过滤器链)实现的,不同的请求经过不同的过滤器链。
Spring Security Oauth2 增加了拓展的过滤器链。
先观察整合Spring Security Oauth2 之后的一部分启动日志

o.s.s.web.DefaultSecurityFilterChain     : 
Creating filter chain: ----------------------------->【第一个过滤器链】
OrRequestMatcher [ 
    requestMatchers=[
        Ant [pattern='/oauth/token'],
        Ant [pattern='/oauth/token_key'], 
        Ant [pattern='/oauth/check_token']
    ]
], 
[
    org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7e135a13, // 根据请求封装获取WebAsyncManager并注册
    org.springframework.security.web.context.SecurityContextPersistenceFilter@141c12a4, // 操作httpsession:有则加载 空则设置,SecurityContext的.set.clear
    org.springframework.security.web.header.HeaderWriterFilter@540abee6, // 请求头中添加相应信息
    org.springframework.security.web.authentication.logout.LogoutFilter@3aa062db,
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter@3a2f0144, 
    org...security.web.savedrequest.RequestCacheAwareFilter@7c2ac578, // 内部维护了一个RequestCache,用于缓存HttpServletRequest
    org...security.web.servletapi.SecurityContextHolderAwareRequestFilter@6972facd, // 对ServletRequest进行了一次包装,+更加丰富的API 
    org...security.web.authentication.AnonymousAuthenticationFilter@4ee626ed, // 创建一个匿名用户存入到SecurityContextHolder 
    org...security.web.session.SessionManagementFilter@40c10fab, // 限制会话数量, session管理
    org...security.web.access.ExceptionTranslationFilter@2828c6c1, // 处理FilterSecurityInterceptor抛出的异常
    org...security.web.access.intercept.FilterSecurityInterceptor@19eadc0f // 获取权限信息调用manager鉴权
]
edFilterInvocationSecurityMetadataSource : Adding web access control expression 'permitAll', for ExactUrl [processUrl='/login?error']
edFilterInvocationSecurityMetadataSource : Adding web access control expression 'permitAll', for ExactUrl [processUrl='/login']
edFilterInvocationSecurityMetadataSource : Adding web access control expression 'permitAll', for ExactUrl [processUrl='/login']
edFilterInvocationSecurityMetadataSource : Adding web access control expression 'permitAll', for OrRequestMatcher [requestMatchers=[Ant [pattern='/my/logout', GET], Ant [pattern='/my/logout', POST], Ant [pattern='/my/logout', PUT], Ant [pattern='/my/logout', DELETE]]]
edFilterInvocationSecurityMetadataSource : Adding web 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值