我在使用RequestionContextHolder
时遇到问题。我在上下文持有者的属性中存储了一个keycloak令牌。我在那一行得到属性:RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
我多次需要此密钥隐藏令牌。
首先,刚登录后,我得到了requestAttributes然后是令牌(一切都很好)。
然后,稍后在使用该应用程序时(在单击几次之后),我需要它,RequestContextHolder.getRequestAttributes()
返回null(然后不太好)。
我不明白为什么第一次都运行良好,然后返回null。
我试图将其放在web.xml中,但它没有任何改变:
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
有人可以帮忙吗?
最佳答案
应用程序中的每次点击都是一个单独的请求,因此它们都有一个单独的RequestContext。似乎仅将此登录请求的令牌放入请求上下文中。大概是通过keycloak集成的。
在以下请求中,您可能需要一些识别用户的信息。这将是一个会话,有不同的类型可用。然后,您的客户端将需要在每个请求中发送一个sessionid或令牌。
有关更多详细信息,您需要为我们提供更多背景信息。您是如何集成密钥斗篷的?您想对令牌做什么?
关于java - RequestContextHolder.getRequestAttributes()在第二次调用时返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50857458/