可能重复:
Getting a value from HttpServletRequest.getRemoteUser() in Tomcat without modifying application
简短版本:如何配置Tomcat使用特定名称(例如"johndoe"
)作为远程用户名?
详细信息:我正在开发一个将使用Tomcat部署到生产环境的Java Web应用程序。生产服务器配置为在用户访问此应用程序之前提示用户进行身份验证,因此应用程序只需使用javax.servlet.http.HttpServletRequest
方法getRemoteUser()
之类的内容来获取用户的名称。事实上,这非常有效。它已经过测试。
问题是在我的开发机器上安装此身份验证过程是不切实际的(出于各种原因)。我还想避免在应用程序中添加专用代码以适应我的本地测试。我认为如果我可以强制使用我想要测试的用户名进入Tomcat的配置,那将是最好的。然后getRemoteUser()
每次都会返回"johndoe"
。当然,在生产中,该用户名不会被强制进入环境,而是运行实际的身份验证过程。
但我无法弄清楚如何将该用户名配置到Tomcat中。有什么建议吗?
答案 0 :(得分:2)
Getting a value from HttpServletRequest.getRemoteUser() in Tomcat without modifying application - 此答案包含一个Valve
,它正是这样做的。它适用于Tomcat,使用Tomcat 6和Tomcat 7进行测试。
Getting a value from HttpServletRequest.getRemoteUser() in Tomcat without modifying application - 另一个答案也可能有用。它是关于一个基于文件的领域,它也需要一些Tomcat服务器配置,但没有任何编码。
答案 1 :(得分:0)
首先,我要实现您自己的Valve并在运行时修改请求以添加您要进行身份验证的用户名。
您只能在开发环境中使用此Valve
进行测试。