|
|

楼主 |
发表于 2012/3/16 14:42:43
|
显示全部楼层
3、统一登录集成解决方案:
操作前对配置文件进行备份:
1) 拷贝JdbcSample.jar、proxool-0.9.0RC3.jar、CAM_AAA_CustomIF.jar、classes12.jar
到c8\webapps\p2pd\WEB-INF\lib目录下
2) 拷贝mssqlConnectPool.properties到c8\configuration目录下,此文件有连接freequery知识库的配置信息,如有不同,则做相应修改见步骤3。
3) 首先修改好mssqlConnectPool.properties其中代码:
jdbc-0.proxool.driver-url=jdbc:mysql://127.0.0.1:6688/freequery?useUnicode=true&characterEncoding=GBK
4) 在freequery.war\WEB-INF\lib下把 _JDBC_mysql.jar 包拷贝到 cognos\c8\webapps\p2pd\WEB-INF\lib下
5) 打开Cognos configuration
配置Security—>Authentication—>New resources—>namespace
Configure the Custom Java namespace
Type: Custom Java provider
Namespace ID: dbAuth
Java class name: auth.mssql.JDBCSample (sqlserver的情况)
6) 进行TEST测试验证:
7) 再修改Security—>Authentication—>Cognos属性,把Allow anonymous access? Value修改为“False”,并保存Cognos configuration配置,重启服务。
8) 启动Cognos连接知识库,本机是配置在Oracle数据库上,字符集为UTF-8
9) 再启动Cognos服务:Command net start "Cognos 8"
10) 启动FreeQuery服务,同时把Mysql数据库也启动。
11) 因FreeQuery集成自身缺陷,对链接地址限制了255个字符长度,需要修改
目录下:\webapps\freequery\template\freequery\resourcemanager\URLLinkDialog.template文件
URLLinkDialog.template
……
<td align="right" noWrap>链接:</td>
<td valign="top">
<input class="_url" maxlength="255" size='56'/> </td>
改成
<td align="right" noWrap>链接:</td>
<td valign="top">
<input class="_url" size='56'/> </td>
也就是去掉maxlength="255" 即可。
12) 登录FreeQuery应用服务,并没登录Cognos Connectin服务。需要配置FreeQuery系统文件。
..\webapps\freequery\template\freequery\MainFrame.template
在MainFrame.template文件的最后添加一段,并修改对应参数:
<span style = "display:none;">
<iframe id ="cognosIframe" name="cognosIframe"></iframe>
<form id="cognosForm" target="cognosIframe" action="http://127.0.0.1/cognos8/cgi-bin/cognos.cgi" method="post">
<input type="hidden" name="CAMUsername">
<input type="hidden" name="CAMPassword">
<input type="hidden" name="CAMNamespace" value="dbAuth">
<input type="hidden" name="h_CAM_action" value="logon">
<input type="hidden" name="encoding" value="UTF-8">
<input type="hidden" name="m" value="portal/main.xts">
</form>
<form id="cognosLogout" target="cognosIframe" action="http://127.0.0.1/cognos8/cgi-bin/cognos.cgi" method ="get">
<input type="hidden" name="b_action" value="xts.run">
<input type="hidden" name="m" value="portal/logoff.xts">
<input type="hidden" name="h_CAM_action" value="logoff">
</form>
</span>
跨服务器移植需要修改登录地址:
把<form id="cognosForm" target="cognosIframe" action="http:// 127.0.0.1/cognos8/cgi-bin/cognos.cgi" method="post">
中的"http:// 127.0.0.1/改为cognos服务器地址"(登录cognos)
把<form id="cognosLogout" target="cognosIframe" action="http:// 127.0.0.1/cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/logoff.xts&h_CAM_action=logoff" method ="get">
中的"http:// 127.0.0.1/改为cognos服务器地址"(注销cognos)
把<input type="hidden" name="CAMNamespace" value="dbAuth"> 中的value="dbAuth" 改为cognos服务器中的namespace
13) 替换Login.js文件
\webapps\freequery\js\freequery\main\Login.js
14) FreeQuery系统对Window IE版本有约束,高版本安全性较高,可以拦截与阻止不信任的地址,以及ActionX插件。
打开IE浏览器,选择“工具”—>Internet 选项—>安全标签页,点击“自定义级别……”,启用部分ActionX控件,启用“通过域访问数据源”,最好是降低IE安全性,直接默认设置。如果还是不能正常登录Cognos服务,每次都提示输入“用户名和密码”。继续配置IE选项下“隐私”,选中“打开弹出窗口阻止程序”,在点“设置”按钮。
添加:可信性的站点,如:http://10.1.19.162/freequery/index.jsp
在“筛选级别”:选“低:允许来自安全站点的弹出窗口”
方法二:如果还是不能登录或者受到阻止拦截:
打开IE中的Internet选项,选择“隐私”选项卡,点击“站点”按钮,在“网站地址”一栏中写上Cognos服务器地址:
15) 针对MainFrame.template注意一点:
情况一: Cognos与Freequery在同一台服务器
MainFrame.template中的cognos地址与freequery中添加报表的地址、同时与要访问的freequery地址要统一,
即为IP,全为IP,为机器名全为机器名
例如:
如果MainFrame.template中的cognos地址为IP:http://172.20.16.17/cognos8/cgi-bin/cognos.cgi
则freequery中添加报表的地址为:http://172.20.16.17/cognos8/cgi-bin/cognos.cgi……
当你打开freequery时的地址则为: http://172.20.16.17/freequery/
如果MainFrame.template中的cognos地址为机器名:http://wuhuafu-vm/cognos8/cgi-bin/cognos.cgi
则freequery中添加报表的地址为:http://wuhuafu-vm/cognos8/cgi-bin/cognos.cgi……
当你打开freequery时的地址则为: http://wuhuafu-vm:8080/freequery
情况二:cognos与freequery不在同一台服务器
MainFrame.template中的cognos地址与freequery中添加报表的地址,即为IP,全为IP,为机器名全为机器名(同情况一)
另须在IE设置:
打开IE中的Internet选项,选择“隐私”选项卡,点击“站点”按钮,在“网站地址”一栏中写上cognos服务器地址
例如,cognos的服务器地址为:172.20.16.17,则在“网站地址”一栏中写上:http://172.20.16.17/cognos8/cgi-bin/cognos.cgi
注意,此处只允许IP地址,所以最好所有要设置地址的地方统一为IP地址,不要为机器名
另附:登录freequery后,等主页加载完全后再点击菜单栏进入查看报表.
16) 清除IE中的cookies和临时文件,重启IE进行登录。 |
|