【发布时间】:2018-04-15 06:07:42
【问题描述】:
我将我的 Spring OAuth2 应用程序切换到了 RedisTokenstore。现在访问主体,基本上是通过...
SecurityContextHolder.getContext().authentication.userAuthentication.principal as User
...我得到一个...
java.lang.ClassCastException: ...User cannot be cast to ...User
(三个点实际上是完整的类路径)。
我对 jave / kotlin 还很陌生,对正在发生的事情只有模糊的了解。
一些提示:
- 我很确定redis令牌存储在此期间没有存储,所以内容应该是一样的(
storeAccessToken在有问题的请求中没有被调用) - 我看到
readAccessToken被调用了两次(我认为这是不必要的往返,但这是另一回事) - 混淆发生在安全链方法的
doFilter方法中,即在第二次遍历中。
更新:串口版本hickhup是因为我添加串口后没有刷新redis缓存。所以这只是cannot cast 错误。
如何开始调试?
【问题讨论】:
-
我知道您试图让我们更容易理解,但您不应该将类路径替换为
...,因为这会使我们更难为您提供帮助。
标签: java spring spring-security spring-security-oauth2