彦祖们,我最近在用 keycloak 做认证,后端使用 spring security 和 keycloak spring security adapter 进行安全保护。
当我使用 client 从 keycloak 获取到了 token ,用 token 去调用后端 api 的时候,在 KeycloakAuthenticationProcessingFilter
180 行中,是直接去 SecurityContext
中拿到了未认证的 Authentication 。
我想知道 token 是什么时候转换成了 Authentication 并放进 SecurityContext 中去的?我能不能通过实现子类修改逻辑?
各位大佬帮帮忙。
1
Oktfolio 2021-11-23 11:27:33 +08:00
多看看源码吧,能找到的。
class extends AbstractAuthenticationToken AuthenticationFilter#attemptAuthentication(HttpServletRequest request, HttpServletResponse response) AuthenticationFilter#successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authentication) |
2
damai0419 2021-11-23 12:41:25 +08:00
keycloak 没用过。
但 spring cloud gateway 和 security 结合的时候,是在 ServerSecurityContextRepository 的子类中进行转换操作的。 |
3
winRain OP 谢谢两位老哥,我仔细看了下源码,已经找到原因了
|