我正在使用JBoss-4.2.3.GA并将IIS配置为集成Windows身份验证并禁用了匿名访问。
我使用以下代码创建了一个JSP页面 -
<% out.print(request.getHeader("Proxy-Remote-User")); %>
其中显示null并且未获取用户名。
但是,如果我使用ASP与 -
一起尝试Request.ServerVariables("AUTH_USER")
它为我提供了正确的用户名。
我在请求对象中尝试了其他方法,如 -
out.print(request.getHeader("AUTH_USER"));
out.print(request.getUserPrincipal());
out.print(request.getHeaderNames());
out.print(request.getRemoteUser());
但他们都给出了空值。
我得到的请求对象中的标头列表是 -
连接,接受,接受编码,接受语言,授权,cookie,主机,用户代理,tomcatworkeridx6a6b0000,内容长度。
我还查看了JBoss目录中的server.xml,发现 enableLookups =“false” 我将其更改为 enableLookups =“true”但在服务器重启时它会自动修改为 enableLookups =“false”。是否有必要将enableLookups设为true?如果是这样,当我重新启动JBoss服务器时如何阻止它自动设置为假?
如何从请求对象中获取远程用户名?
谢谢!
答案 0 :(得分:1)
尝试按照here在AJP连接器对象上设置tomcatAuthentication="false"
。 server.xml中的连接器应如下所示:
<Connector port="8009" address="${jboss.bind.address}"
emptySessionPath="true" enableLookups="false" redirectPort="8443"
protocol="AJP/1.3" connectionTimeout="600000" maxThreads="200"
tomcatAuthentication="false" />
(我不是100%肯定适用于AS以及独立的Web服务器,但似乎值得一试)
如上面的链接中所述,enableLookups
属性仅控制request.getRemoteHost()
是否实际执行DNS查询,因此无法正确设置REMOTE_USER
标头< / p>
答案 1 :(得分:0)
对于JBoss,我必须编写一个asp并通过Request.ServerVariables(“REMOTE_USER”)获取用户名,然后将其传递给我的JSP