icCube - 如何使用 Apache Web 服务器对 icCube 进行身份验证
icCube - How to do Authentication for icCube using an Apache web server
我目前正在编写一个 WebApp 来访问我们的 ICCube 系统的报告。应用程序页面托管在与 IcCube 服务器不同的服务器上。该服务器当前是本地 Apache 服务器 (xampp),使用 Basic Auth 在用户访问我的 htdocs 之前对用户进行身份验证。我希望我的 Apache 进行身份验证,而 icCube 的内部授权管理报告访问,只需要一次登录。
我的应用是基于IcCube提供的live demo for web reporting;因此它使用显式 JavaScript 身份验证(它通过 ic3.getDemoDataSourceSettings() 获取演示用户数据)。
在尝试解决 IcCube documentation 问题之后,我还是和以前一样困惑。 Apache 配置的相关页面列出了 Apache 和 icCube 的可能配置,但我不明白我应该使用哪个(优点和缺点)以及它们是否都适用于我们的服务器设置。
- Apache 配置概述:
如果我在我的服务器配置中设置这些代理参数,究竟是什么
转发到 IcCube?
- icCube 身份验证 Servlet 过滤器:
此配置提取属于 IcCube 还是 Apache?这些过滤器到底在做什么?
任何有关此问题的帮助或指向更深入文档的指针都将不胜感激。
您的 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 配置一部分的 Servlet 过滤器保护 Apache 和 icCube 之间的通信 (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>
希望对您有所帮助。
我目前正在编写一个 WebApp 来访问我们的 ICCube 系统的报告。应用程序页面托管在与 IcCube 服务器不同的服务器上。该服务器当前是本地 Apache 服务器 (xampp),使用 Basic Auth 在用户访问我的 htdocs 之前对用户进行身份验证。我希望我的 Apache 进行身份验证,而 icCube 的内部授权管理报告访问,只需要一次登录。
我的应用是基于IcCube提供的live demo for web reporting;因此它使用显式 JavaScript 身份验证(它通过 ic3.getDemoDataSourceSettings() 获取演示用户数据)。
在尝试解决 IcCube documentation 问题之后,我还是和以前一样困惑。 Apache 配置的相关页面列出了 Apache 和 icCube 的可能配置,但我不明白我应该使用哪个(优点和缺点)以及它们是否都适用于我们的服务器设置。
- Apache 配置概述: 如果我在我的服务器配置中设置这些代理参数,究竟是什么 转发到 IcCube?
- icCube 身份验证 Servlet 过滤器: 此配置提取属于 IcCube 还是 Apache?这些过滤器到底在做什么?
任何有关此问题的帮助或指向更深入文档的指针都将不胜感激。
您的 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 配置一部分的 Servlet 过滤器保护 Apache 和 icCube 之间的通信 (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>
希望对您有所帮助。