我们正试图通过我们组织的单点登录认证,从供应商那里购买网络软件。他们的软件期望在我们将控制转发到他们的欢迎页面之前,在JSP中将CGI环境变量REMOTE_USER设置为用户ID。 (他们的技术手册仅以这种方式描述它:“... HTTP响应对象应该使用经过身份验证的用户的用户名填充远程用户属性。”)获取此值很简单但我们还没有找到一个简单的方法谷歌搜索设置它。我们相信这是可能的。感谢您的任何建议。
答案 0 :(得分:2)
您无法以编程方式自行设置CGI变量REMOTE_USER
。这是一个由Web服务器控制的变量,它基于从Authorization
HTTP请求标头中提取的用户名。在客户端输入HTTP基本身份验证凭据后,客户端(webbrowser)将设置原始头。
我只是不明白手册在HTTP响应中设置属性的含义。这没有意义。如果它是基于Java Servlet的API,那么将它设置为请求的自定义属性会更有意义。
request.setAttribute("REMOTE_USER", "some user ID");
转发(不重定向!)后,它将可用于转发的资源。
但是,这仍然没什么意义。我想知道你是否实际上并不是指“重定向”或者可能是“代理”而不是“转发”,但是你通常不会使用JSP,因为这是响应的一部分,因此可能会导致错误。 servlet是正确的地方。