Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netbeans 远程用户未由Apache2设置?_Netbeans_Apache2_Glassfish 3_Mod Jk - Fatal编程技术网

Netbeans 远程用户未由Apache2设置?

Netbeans 远程用户未由Apache2设置?,netbeans,apache2,glassfish-3,mod-jk,Netbeans,Apache2,Glassfish 3,Mod Jk,我正在从事一个使用Netbeans和Glassfish 3.1的项目,并试图实现LDAP授权。为此,我还使用mod_jk提供了一个支持LDAP的Apache2服务器。要点是,当用户访问/sng/目录中站点上的任何页面时,Apache服务器应该请求凭据并将用户转发到运行该站点部分的Glassfish服务器 Apache正在正确地排队等待并接受LDAP凭据,然后将用户转发到适当的区域。但似乎REMOTE_用户变量不是由Apache设置的,也不是由mod_jk发送的。相关配置文件和代码段如下所示: h

我正在从事一个使用Netbeans和Glassfish 3.1的项目,并试图实现LDAP授权。为此,我还使用mod_jk提供了一个支持LDAP的Apache2服务器。要点是,当用户访问/sng/目录中站点上的任何页面时,Apache服务器应该请求凭据并将用户转发到运行该站点部分的Glassfish服务器

Apache正在正确地排队等待并接受LDAP凭据,然后将用户转发到适当的区域。但似乎REMOTE_用户变量不是由Apache设置的,也不是由mod_jk发送的。相关配置文件和代码段如下所示:

httpd.conf

<Location />
    AuthBasicProvider ldap
    AuthLDAPURL ldap://mainframe/ou=People,dc=dtch,dc=com?uid?sub
    AuthzLDAPAuthoritative off
    AuthType Basic
    AuthName "LDAP"
    require valid-user

    Options Indexes FollowSymLinks MultiViews +Includes
</Location>
工人。财产

worker.list=worker1

worker.worker1.port=8009
worker.worker1.host=127.0.0.1
worker.worker1.type=ajp13
站点已启用/000默认值

...

JkMount /*.jsp worker1
JkMount /sng/* worker1
web.xml

<filter>
    <filter-name>RemoteUser</filter-name>
    <filter-class>path.to.RemoteUser</filter-class>
</filter>
<filter-mapping>
    <filter-name>RemoteUser</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
最后,我在Glassfish控制面板中注册了一个侦听器:

简言之,我不知道为什么不断返回null,我在互联网上的搜索也没有任何帮助。提前感谢您提供的任何意见


注意:
httpServletRequest.getRemoteUser()
提供了相同的空结果。

我从未能够检索到RemoteUser头,但我找到了一个以
授权
头形式存在的解决方法。使用
getHeader(“授权”)
以以下形式向我返回一个字符串:

Basic XXXX:YYYY
其中X是用户名,Y是通过Apache/mod_jk访问页面的用户的密码


“Basic”(X:Y)后面的字符串部分是Base64编码的,因此在用它解码后,我最终获得了一个可以使用的用户名。

我从来都无法检索RemoteUser标头,但我找到了一种解决方法,即
授权
标头。使用
getHeader(“授权”)
以以下形式向我返回一个字符串:

Basic XXXX:YYYY
其中X是用户名,Y是通过Apache/mod_jk访问页面的用户的密码


“Basic”(X:Y)后面的字符串部分是Base64编码的,所以在用它解码之后,我最终得到了一个可以使用的用户名。

我也有这个问题。我在另一个帖子上偶然找到了答案。您必须在tomcat中更新
server.xml
,如下所示:

<Connector protocol="AJP/1.3" port="..." ...
tomcatAuthentication="false" />


必须指定
tomcatAuthentication
。一旦我进行了更新,tomcat反弹道,
getRemoteUser()
对我有效。

我也有这个问题。我在另一个帖子上偶然找到了答案。您必须在tomcat中更新
server.xml
,如下所示:

<Connector protocol="AJP/1.3" port="..." ...
tomcatAuthentication="false" />

必须指定
tomcatAuthentication
。一旦我进行了更新,tomcat反弹道,
getRemoteUser()
为我工作