Authentication icCube-如何使用apacheweb服务器对icCube进行身份验证

Authentication icCube-如何使用apacheweb服务器对icCube进行身份验证,authentication,xampp,iccube,iccube-reporting,Authentication,Xampp,Iccube,Iccube Reporting,我目前正在编写一个WebApp来访问我们的ICCube系统的报告。应用程序页面托管在与IcCube服务器不同的服务器上。该服务器目前是一个本地Apache服务器(xampp),使用基本身份验证对用户进行身份验证,然后用户才能访问我的htdocs。我希望我的Apache在icCube的内部授权管理报表访问时进行身份验证,只需要一次登录 我的申请基于IcCube提供的;因此,它使用显式JavaScript身份验证(它通过ic3.getDemoDataSourceSettings()获取演示用户数据)

我目前正在编写一个WebApp来访问我们的ICCube系统的报告。应用程序页面托管在与IcCube服务器不同的服务器上。该服务器目前是一个本地Apache服务器(xampp),使用基本身份验证对用户进行身份验证,然后用户才能访问我的htdocs。我希望我的Apache在icCube的内部授权管理报表访问时进行身份验证,只需要一次登录

我的申请基于IcCube提供的;因此,它使用显式JavaScript身份验证(它通过ic3.getDemoDataSourceSettings()获取演示用户数据)

在努力解决这件事之后,我还是像以前一样困惑。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>
    
    第一个过滤器可用于除GWT以外的所有服务;对于GWT,您可以使用第二个。以下是可能的icCube.xml的摘录:

    IcCubeApacheAuthenticationServletFilter
    IcCubeApacheGwtAuthenticationServletFilter
    
    <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>
    
    
    /icCube/xmla
    真的
    XMLA(Apache)身份验证
    真的
    GWT(Apache)身份验证
    /icCube/doc/*
    真的
    报告验证
    /icCube/gvi
    真的
    GVI认证
    GVI身份验证(注销)
    XMLA(Apache)身份验证
    crazydev.iccube.server.authentication.iccubeAppacheAuthenticationServletFilter
    GWT(Apache)身份验证
    crazydev.iccube.server.authentication.iccubeAppacheGWtauthenticationServletFilter
    报告验证
    crazydev.iccube.server.authentication.iccubeAppacheAuthenticationServletFilter
    GVI认证
    crazydev.iccube.server.authentication.iccubeAppacheAuthenticationServletFilter
    匿名登录
    假的
    GVI身份验证(注销)
    crazydev.iccube.server.authentication.IcCubeGviLogoutAuthenticationServletFilter
    

    希望能有所帮助。

    我目前将用户数据显式传递给ic3.Reporting,如下所示:
    var dsSettings=ic3.getDemoDataSourceSettings();dsSettings.url=gviUrl;var ic3reporting=new ic3.Reporting({noticesLevel:ic3.NoticeLevel.ERROR,dsSettings:dsSettings}
    如何更改此段落以使用servlet解决方案?我假设我仍然需要一段类似的代码来获得getAllReportNames()获取用户有权访问的内容。不知道为什么需要显式登录。执行Apache Basic Auth.意味着Javascript文件发送的GVI请求将在服务器端进行身份验证,这意味着返回的报告列表取决于经过身份验证的用户。这是否意味着我可以将dsSettings保留为unde罚款?好的,我配置了一个与您的示例类似的IcCube和Apache的本地测试安装,它似乎工作正常。由于不同的问题,我无法正确测试它,我将在单独的问题中发布这些问题。感谢到目前为止的帮助!更新:使用我们的实时系统测试配置后,IcCube不再可访问,也无法通过标准在线接口,也不是通过apache托管的WebApp。接口状态:
    HTTP错误:500访问/icCube/service.gwt时出现问题。原因:javax.servlet.ServletException:icCube身份验证[icCube icc用户]错误:缺少用户凭据
    我认为当前系统中的配置存在根本性的问题,有什么想法吗?我现在返回到前面的iccube.xml。