在项目开发过程中,用户往往对系统的安全都有明确的要求,下面针对cognos门户认证用户密码如何加密来提供一个简单的wf
1Cognos权限认证方式:CJP
2Cognos用户数据库类型:Oracle
3用户密码加密方式:MD5
本文主要说一下大概的实现过程:
a:加密方式采用md5,可以用Java代码来写方法实现,也可以在数据库中写方法,本例子采用在DB服务端写function的方法来处理md5加密问题
(1):为了方便大家,附上md5加密方法源码
CREATE OR REPLACE FUNCTION MD5( passwd IN VARCHAR2) RETURN VARCHAR2 IS retval varchar2(32); v_pwd varchar2(32); BEGIN v_pwd:= NVL(passwd,'123456'); retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => v_pwd)) ; RETURN retval; END;
(2)测试一下方法,对密码列处理之后,可以看出来所有的密码都已加密,用户登录的时候要靠记忆来登录了,可以给管理员提供重置密码的功能.
---md5方法示例
---加密所有密码
b:修改原来的验证包源码,主要是修改验证用户是否在CJP用户库存在的时候,先加密然后和用户库中的密码匹配
经过上面的操作,用户在登录界面输入明文密码登录,比如123456,在认证的Java程序中就会对该明文先加密然后匹配
匹配OK再连接Cognos服务器,分配相关的权限,这样就实现了数据库中用户信息的相对安全.接下来安心的登录吧少年.
ps:需要解释的地方是,在Cognos和第三方门户集成的时候,只要考虑门户登录验证之前先加密后验证即可,Cognos登录
加密验证交给之前我们配置的CJP加密验证程序即 可,门户处不需要再次进行对Cognos登陆的加密,只要有登录Cognos的操
作,请求就会被转发到CJP用户验证程序来处理用户登录Congo服务器的操作.