如何调用 Backing Bean 方法从传入请求中获取请求标头值并将结果转发到 JSF 页面
我的要求是“我们的用户由外部系统使用 SSO 进行身份验证”。 成功验证后,外部系统返回标头变量,即。用户身份, 我们的系统中的名字、姓氏等。 目前我可以使用检索这些标头变量 我的 JSP 页面中的 request.getHeader("userId") 。
但我使用的是 JSF 2.0,无法弄清楚如何在 JSF 中完成此操作。我在 Stack Overflow 上看到了一个例子……
Map<String, String> requestHeaders = context.getExternalContext().getRequestHeaderMap();
String userName = requestHeaders.get(requestHeaderName);
但是没有进一步的回应如何在支持 bean 上调用它。
任何指针或示例代码都会有所帮助。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
上下文
在这里只是 rel="nofollow">FacesContext
。这是一个基于请求的线程局部变量,在由 FacesServlet 控制的所有 JSF 代码中始终可用。您可以在 bean 的构造函数、bean 的 @PostConstruct 方法、bean 的 action(listener) 方法等中调用它。正确的位置取决于您想要收集此信息的时刻以及您想用此信息做什么。
The
context
is here just the current instance of theFacesContext
. This is a request based threadlocal variable which is always available throughout all the JSF code which is controlled by theFacesServlet
.You can invoke this in for example the bean's constructor, the bean's
@PostConstruct
method, the bean's action(listener) method, etcetera. The right place depends on the moment you want to collect this information and what you want to do with this information.