分享【Cognos第三方认证custom java provider配置方法】
当把用户引入到cognos后,顺便贴一下针对COGNOS目录访问权限的设定文档:
用户访问的SQL SERVER 2000的库,在CONGOS8.4和COGNOS 10.1上都调试通过,可以登录进去。这2天断断续续就这事了,其实CONGOS提供的SDK说的很明白,在调试过程中走了点小弯路,不是驱动没弄对,就是JAR文件没弄对,最后总算可以了,把详细过程记录下来,跟大家分析,少走弯路。
SDK中的原始文件
Cognos的SDK中包括了第三方认证custom java provider的源代码实例,可以直接那过来调试和改造,不过是针对SQL SERVER数据库的,SDK中的路径地址如下:
bisdk_mp_win32_10.1.1_ml.tar.gz.zipfileswin32camaaasdk-win32-app-10.1.6235.602-inst.tar.gzsdkjavaAuthenticationProvider
解压后目录内容如下图:
生成JAVA认证JAR包
参见readme.txt的说明进行操作
进入文件目录AuthenticationProviderJDBCSample
在CMD命令提示符下设定JDK的路径为了保证JAR包的生成,需要根据自己机器上JDK的安装路径,设定JAVA的环境变量,执行如下:
G:AuthenticationProviderJDBCSample>set path=%path%;C:Program FilesJavajdk1.5.0_04bin
运行build.bat批出来,生成需要的JAR包执行完命令目录会多了一下.class文件及一个CAM_AAA_JDBCSample.jar文件,生成结果如下:
用文本编辑器打开该文件,主要编辑下面2行:
server=localhost:1433
databaseName=JDBCSample
说明如下:
Server为要连接的SQL SERVER服务器的地址及端口;
databaseName为要连接的数据库
文件的名字中【Sample1】,跟后面在Cognos的Configuration中的配置的写法要一致。
准备数据库访问驱动因为要访问的是SQL server 的数据库,驱动如下:sqljdbc.jar;
相关文件COPY到COGNOS目录数据库驱动文件把sqljdbc.jar 复制到c10BiServer安装目录webappsp2pdWEB-INFlib下;
第三方认证JAR包文件把在上一步生产的JAR文件(CAM_AAA_JDBCSample.jar)复制到c10BiServer安装目录webappsp2pdWEB-INFlib下;
数据库配置文件把JDBC_Config_Sample1.properties复制到c10BiServer安装目录configuration下;
配置COGNOS禁止匿名访问进入COGNOS 的Configuration,把运行匿名方式访问禁止,如下图:
在【身份验证】节点右键新建【命名空间:dbAuth】,选择【自定义JAVA 提供程序】如下图:
如下图:
注意:
名称空间ID【Sample1】跟前面提到的JDBC_Config_Sample1.properties文件是一致的。
测试、保存、启动COGNOS设定完后,测试没问题就可以启动Cognos了。
访问COGNOS的WEB SERVER进行验证Cognos 8.4出现的登录界面如下图:
如下图:
这个SDK的包里,直接使用的SQL SERVER的系统用户进行验证的,可以直接输入sa用户及密码,安装前面的配置没问题就直接看到COGNOS的首页面;
用户的访问可以看到,展示的都是SQL SERVER的系统角色,如下图:
整个过程配置完成,COGNOS可以使用第三方的JAVA程序进行用户层面的登录
扩展应用上面的应用只是实现的最基本的登录验证模式,在实际使用中肯定不这样使用,就需要改造代码,让用户的登录验证使用应用系统自带的用户和密码,代码的改造也很简单。
其他数据库的访问方式要改造上面的代码,配置相应数据库的驱动和配置信息,在调整一下代码就可以。
再次更新针对DB2数据的修改,程序包如下:
程序包的改动如下:
1、针对DB库自己应用的用户的表的改动。(如果要集成到自己的代码中,就需要修改一个SQL就可以,改成自己表的验证逻辑);
2、数据源的访问写在配置文件中【JDBC_Config_Sample.properties】,配置文件中同时配置了一个admin的超级管理员,不走数据库的验证逻辑;
3、解压后直接运行srcbuild.bat就可以,直接编译成CAM_AAA_JDBCSample.jar包,如果jdk的安装路径跟build.bat中指定的有区别,只需要稍微改一下;
4、【JDBC_Config_Sample.properties】文件要放到BI SERVER安装目录下的configuration/下;
5、【CAM_AAA_JDBCSample.jar】文件要放到BI SERVER安装目录下的/webapps/p2pd/WEB-INF/lib/下;
6、非windows环境下,要给【CAM_AAA_JDBCSample.jar】文件赋予可执行权限,命令如下:chmod +x CAM_AAA_JDBCSample.jar;
7、在更新调试第三方认证是,更新【CAM_AAA_JDBCSample.jar】和、【JDBC_Config_Sample.properties】文件,一定要停掉cognos BI server并且把configuration窗口退出,而且要删除原来目录下的【CAM_AAA_JDBCSample.jar】和、【JDBC_Config_Sample.properties】文件,再重新copy,在调试过程中发现这2个文件会锁定,COPY覆盖是没提示,但却是没更新,只有在删除时给出提示被占用,所以一定要先删除在copy;
这下面是最近一个项目的,连接DB2的数据库,访问自己的用户表,在系统管理中也能载入出来用户的源代码,大家可以参考一下:
其实很简单,就2个步骤:
1、修改一段SQL语句,让访问自己库中的用户表;
2、登录验证成功后,把用户列表取出来,往cognos塞入一下,就OK;