jsp访问cognos认证问题??

1 由于项目中java框架的限制,所有报表都用的拼接url赋给iframe的src中访问的,加入了ldap权限后,发现iframe不能认证,需要输入cognos用户才行。但如果是window.open(rep_url);就可以走过认证并显示报表。这是什么原因?是否window.open与iframe的src 执行的机制不一样,前者有提交动作后者没有??

2 如果我想在应用首页登录时,做一次登录认证,这样只要会话不关闭,所有报表都可以访问了。可提交后会直接转到cognos服务中,如何能走过认证后回到我们应用的系统页面?我尝试了在login.jsp中做了两个form,一个用来提交cognos认证,一个用来提交应用系统登录,发现这样行不通,但中间加一个alert();就可以了。如下,多个alert();就能通过认证并进入我们的应用系统。如果不加就不行。如果只提交form2,就进入cognos 服务。我搞不懂其中原理。。。

   

   
   
   
   

   

  ...  系统登路用户名密码部分
   

3 目前可行的办法是,login.jsp正常提交,但forward到cognos的一张带认证的空报表,报表中通过加入一个html,用js来window.location到我系统登录成功的页面。这样可行,但我觉得有点笨。请问还有什么办法来实现我要的功能吗?


请大家给点思路吧。。
参与13

12同行回答

yikecong_8369yikecong_8369软件开发工程师yucheng
多谢分享显示全部
多谢分享收起
互联网服务 · 2013-05-28
浏览1086
FinrodElensarFinrodElensar软件开发工程师北京东方金指
LZ解决问题了吗?我现在也遇到这个问题,有什么方法吗显示全部
LZ解决问题了吗?我现在也遇到这个问题,有什么方法吗收起
政府机关 · 2012-04-14
浏览1085
aqiang_007aqiang_007软件开发工程师longtop
经典呀,我正好需要这个显示全部
经典呀,我正好需要这个收起
互联网服务 · 2011-05-22
浏览1195
fanyingnedufanyingneduBI开发工程师吉贝克信息技术(北京)有限公司
多谢了啊,抱歉这么久才看帖子,我也尝试了异步提交,可ajax会遇到跨域的问题。应用和cognos分别搞两台服务器的,用java代理也试了一下没搞定。。。显示全部
多谢了啊,抱歉这么久才看帖子,我也尝试了异步提交,可ajax会遇到跨域的问题。应用和cognos分别搞两台服务器的,用java代理也试了一下没搞定。。。收起
金融其它 · 2011-01-13
浏览1183
xyj4421xyj4421软件开发工程师xyj4421
补充一点出错说明:如果不加alert(),表单直接提交到cognos去了,自然不会执行下面的代码,所以不能登录自己的系统。显示全部
补充一点出错说明:如果不加alert(),表单直接提交到cognos去了,自然不会执行下面的代码,所以不能登录自己的系统。收起
互联网服务 · 2011-01-12
浏览1191
wuyaowuyao数据仓库运维工程师321
非常不错  楼上的 很强啊显示全部
非常不错  楼上的 很强啊收起
生活生产服务 · 2011-01-12
浏览1209
xyj4421xyj4421软件开发工程师xyj4421
希望能有帮助显示全部
希望能有帮助收起
互联网服务 · 2011-01-12
浏览1185
xyj4421xyj4421软件开发工程师xyj4421
我个人的观点:出错原因:alert()将程序中断,在点击alert()之前所有操作都是停止的,所以虽然提交并通过了cognos认证,但页面不跳转;一旦点击了alert(),程序继续运行,提交第二个表单,页面才跳转到所需的页面。解决方案:通过ajax技术提交表单。先提交cognos认证,在提交系统登录信息。例...显示全部
我个人的观点:

出错原因:alert()将程序中断,在点击alert()之前所有操作都是停止的,所以虽然提交并通过了cognos认证,但页面不跳转;一旦点击了alert(),程序继续运行,提交第二个表单,页面才跳转到所需的页面。

解决方案:通过ajax技术提交表单。先提交cognos认证,在提交系统登录信息。例如:
var xhr;
function CAMLogon(){
createXHR();
xhr.onreadystatechange = CAMLogonCallback;
xhr.open("get", "http://xxxxx:9300/p2pd/servlet/dispatch?b_action=xts.run&m=portal/main.xts&h_CAM_action=logonAs&CAMUsername=xxxxxxxx&CAMPassword=xxxxxxxx&CAMNamespace=xxxxxxxxxx");//认证参数自行修改
xhr.send();
}

function createXHR(){
if(window.ActionXObject){
  xhr = new ActiveXObject("Micrasoft.XMLHTTP");
}else{
  if(window.XMLHttpRequest){
    xhr = new XMLHttpRequest();
  }
}
}

function CAMLogonCallback(){
if(xhr.redystate==4){
  if(xhr.status==200){
    alert("CAMlogon success");
    logon();
  }
}
}

function logon(){
createXHR();
xhr.onreadystatechange = logonCallback;
xhr.open("get", "");//登录参数自行修改,拼串也可以
xhr.send();
}

function logonCallback(){
if(xhr.redystate==4){
  if(xhr.status==200){
    //alert("xhr.responseText");显示返回值
    alert("logon success");
    window.location("");//可指定跳转页面
  }
}
}
/*流程说明:
1. 调用CAMLogon(),发送认证请求,页面不会跳转
2. 认证成功后才调用logon(),发送系统登录的请求
3. 登录成功后,通过logonCallback()可以将页面跳转到指定url
*/收起
互联网服务 · 2011-01-12
浏览1204
fanyingnedufanyingneduBI开发工程师吉贝克信息技术(北京)有限公司
哎,,真不给力啊,,高人给指点指点吧。。显示全部
哎,,真不给力啊,,高人给指点指点吧。。收起
金融其它 · 2011-01-05
浏览1190
fanyingnedufanyingneduBI开发工程师吉贝克信息技术(北京)有限公司
有人帮忙解决一下没显示全部
有人帮忙解决一下没收起
金融其它 · 2011-01-04
浏览1162

提问者

fanyingnedu
BI开发工程师吉贝克信息技术(北京)有限公司
擅长领域: 大数据商业智能服务器

相关问题

相关资料

问题状态

  • 发布时间:2010-12-31
  • 关注会员:1 人
  • 问题浏览:7452
  • 最近回答:2013-05-28
  • X社区推广