单点登录有:iframe方式、ajax方式和表单提交方式 用第三种,但不在表单中, 想在java代码中实现,模拟post以后redirect到报表url。 但效果是无法直接看到报表,都转到登录页面去了。 sendRedirect后登录的状态没了吗?问题在哪里啊? 别的系统调用报表时,通过这个接口统一做单点登录,不想每个系统都做一遍单点登录。 public void viewFR(String rptName){ Map<String,String> params = new HashMap<String,String>(); 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 |