2010-12-01 115 views
2

我们试图将我们从供应商处购买的Web软件与我们公司的单点登录认证进行对照。他们的软件希望在我们将控制转发到他们的欢迎页面之前,将CGI环境变量REMOTE_USER在JSP中设置为用户ID。 (他们的技术手册只是以这种方式描述它:“... HTTP响应对象应该使用经过身份验证的用户的用户名填充远程用户属性。”)获取此值很容易,但我们尚未找到一个简单的方法谷歌搜索设置它。我们相信这是可能的。感谢您的任何建议。在JSP中设置REMOTE_USER

回答

2

您无法以编程方式自行设置CGI变量REMOTE_USER。这是一个由Web服务器控制的变量,它基于从Authorization HTTP请求标头中提取的用户名。客户端输入HTTP基本身份验证凭据后,将由客户端(webbrowser)设置原始头文件。

我只是不明白手册的意思是在HTTP响应中设置属性。这没有意义。如果它是基于Java Servlet的API,将其设置为请求上的自定义属性会更有意义。

request.setAttribute("REMOTE_USER", "some user ID"); 

转发(不重定向!)后,它将可用于转发资源。

但是,这仍然没有多大意义。我想知道,如果你实际上并不是指“重定向”或者“代理”而不是“转发”,但是你通常不会使用JSP,因为这是响应的一部分,因此可能会使其恶化。一个servlet是正确的地方。

+0

对不起,Balus,我在非技术意义上使用“转发”。我的意思是“传递控制权”,但这是技术性的。您的怀疑主义与我们的网络专家相匹配。我们会在几天内与供应商召开电话会议,讨论此问题。 – DavidC 2010-12-02 01:07:59