单点登录有:iframe方式、ajax方式和表单提交方式
用第三种,但不在表单中, 想在java代码中实现,模拟post以后redirect到报表url。
但效果是无法直接看到报表,都转到登录页面去了。 sendRedirect后登录的状态没了吗?问题在哪里啊?
别的系统调用报表时,通过这个接口统一做单点登录,不想每个系统都做一遍单点登录。
public void viewFR(String rptName){
Map params = new HashMap();
params.put("op","fs_load");
params.put("cmd","sso");
params.put("fr_username","admin");
params.put("fr_password","111111");
String loginUrl="10.4.170.34:7001/WebReport/ReportServer"; //帆软服务器
//String loginUrl="loclahost:8080/myproject/test.do";
String ret=HttpUtil.http(loginUrl,params);//模拟表单post, 测试post到上面test.do时,能接收到4个值
System.out.println(ret); //打印出结果为: null({"status":"success","url":"http://10.4.170.34:7001/WebReport/ReportServer?op=fs"}) 这应该是登录成功的吧
String rptUrl=loginUrl+"?formlet="+rptName; //报表地址
try{
response.sendRedirect(rptUrl); //最后还是显示登录页面
}catch(IOException e){
}
}
编辑于 2017-7-20 19:50