我目前正在编写一个WebApp来访问我们的ICCube系统的报告。应用程序页托管在与IcCube服务器不同的服务器上。服务器目前是本地Apache服务器(xampp),使用Basic Auth在用户访问我的htdocs之前对他们进行身份验证。我希望Apache在icCube的内部授权管理报表访问时进行身份验证,只需要一个登录名。
我的应用程序基于网络报告的现场演示提供的IcCube;因此它使用显式JavaScript身份验证(它通过ic3.getDemoDataSourceSettings()获取演示用户数据)。
在试图通过IcCube文档解决这个问题后,我和以前一样感到困惑。Apache上的相关页面列出了Apache和icCube的可能配置,但我不明白我应该使用哪些配置(优点和缺点),以及是否所有这些配置都可以用于我们的服务器设置。
对于这个问题的任何帮助或指向更深入的文档的指针都将不胜感激。
发布于 2015-11-23 08:39:31
您的Web (即Apache)必须转发与访问icCube中的报告有关的调用。例如,您可以将Apache配置为转发与icCube相关的所有内容,如下所示:
<VirtualHost *:80>
ServerName your.domain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /icCube http://your-ip:8383/icCube
ProxyPassReverse /icCube http://your-ip:8383/icCube
</VirtualHost>然后,使用作为icCube配置( icCube configuration,icCube.xml)一部分的Servlet过滤器来保护Apache和icCube.xml之间的通信:
IcCubeApacheAuthenticationServletFilter
IcCubeApacheGwtAuthenticationServletFilter第一个过滤器可以用于除GWT以外的所有服务;对于GWT,您可以使用第二个过滤器。下面是一个可能的icCube.xml的摘录:
<xmlaComponentConfiguration>
<!--<tcpPortNumber>8484</tcpPortNumber>-->
<httpUrl>/icCube/xmla</httpUrl>
<enableHttpCompression>true</enableHttpCompression>
<filter>XMLA (Apache) Authentication</filter>
</xmlaComponentConfiguration>
<gwtServiceComponentConfiguration>
<enableFileDownloadCompression>true</enableFileDownloadCompression>
<filter>GWT (Apache) Authentication</filter>
</gwtServiceComponentConfiguration>
<reportingComponentConfiguration>
<url>/icCube/doc/*</url>
<enableCompression>true</enableCompression>
<filter>Report Authentication</filter>
</reportingComponentConfiguration>
<gviComponentConfiguration>
<url>/icCube/gvi</url>
<enableCompression>true</enableCompression>
<filter>GVI Authentication</filter>
<filter>GVI Authentication (logout)</filter>
</gviComponentConfiguration>
<filterConfiguration>
<filter>
<filter-name>XMLA (Apache) Authentication</filter-name>
<filter-class>crazydev.iccube.server.authentication.IcCubeApacheAuthenticationServletFilter</filter-class>
</filter>
<filter>
<filter-name>GWT (Apache) Authentication</filter-name>
<filter-class>crazydev.iccube.server.authentication.IcCubeApacheGwtAuthenticationServletFilter</filter-class>
</filter>
<filter>
<filter-name>Report Authentication</filter-name>
<filter-class>crazydev.iccube.server.authentication.IcCubeApacheAuthenticationServletFilter</filter-class>
</filter>
<filter>
<filter-name>GVI Authentication</filter-name>
<filter-class>crazydev.iccube.server.authentication.IcCubeApacheAuthenticationServletFilter</filter-class>
<init-param>
<param-name>anonymousLogon</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter>
<filter-name>GVI Authentication (logout)</filter-name>
<filter-class>crazydev.iccube.server.authentication.IcCubeGviLogoutAuthenticationServletFilter</filter-class>
</filter>
</filterConfiguration>希望这能有所帮助。
https://stackoverflow.com/questions/33824150
复制相似问题