我不确定RunAsUserToken。我认为它打算在某人已经通过身份验证时使用,但是该应用程序将如何以其他用户身份执行某些操作。
我在这里找到了使用它的示例。
但是,也许您并不需要。如果是这样,您可以执行以下操作:
Authentication auth = new UsernamePasswordAuthenticationToken(admin.getUsername(), admin.getPassword(), admin.getAuthorities());SecurityContextHolder.getContext().setAuthentication(auth);
然后管理员将通过身份验证。另外,您也无需使用
admin.getPassword()它,因为无论如何它都不会被检查。
请注意,您不必创建安全上下文:它已经存在。我认为这是
ThreadLocal默认设置。



