SAP BO说来比较曲折,BO本是一家公司,叫Business Object,同时这个公司有个产品叫Business Object,这个BO公司旨在做动态报表等商业解决方案,后被SAP收购.主要用来做Business Object Dashboard,Crystal Report,Web Intelligence等,某些功能可能与互联网上的开源框架有点距离。不做评价。

现在java成了一门大众化语言,国内java程序员也会对BO进行二次扩展开发,功能可能涉及授权,计划,查看,下载等。好多公司都会去做单点登录。想把BO给集成到一起。所以就得跳过登录。

1.bo登录(主要思想是基于session,token)

1.1 basic logon+Logon token

讲下basic logon+Logon token,获取到session,已经成功了一大半。如果是因为网络不通原因报错,就要添加host映射,查找网络。

IEnterpriseSession basicLogon() throws SDKException
{
ISessionMgr sessionManager = CrystalEnterprise.getSessionMgr();
IEnterpriseSession enterpriseSession = sessionManager.logon("username",
"password", "<cms>:<port>", "secEnterprise");
return enterpriseSession;
}

有了session就能获取到token了。

String defaultToken() throws SDKException
{
IEnterpriseSession enterpriseSession1 =
CrystalEnterprise.getSessionMgr().logon("username", "password",
"<cms>:<port>", "secEnterprise");
ILogonTokenMgr tokenMgr = enterpriseSession1.getLogonTokenMgr();
String defaultLogonToken = tokenMgr.getDefaultToken();
}

当你拥有了token之后操作bo就如鱼得水了。

2. 登录CMC,BI

登录CMC,BI都可以用token操作了。

2.1 登录BI http://IP:8080/BOE/BI/logon/start.do?ivsLogonToken=defaultLogonToke

2.2 登录cmc  cmc成功后的url xxxx&bttoken=defaultLogonToke

demo会上传

3 .个人见解

但是因为有些公司的单点登录是不会传密码的。所以用Using trusted authentication  比较好。这个需要basis或者你自己配置下信任验证

IS essionMgr sessionMgr = CrystalEnterprise.getSessionMgr();
ITrustedPrincipal trustedPrincipal =
sessionMgr.createTrustedPrincipal("userName", "<cms>:<port>", "sharedSecret");
IEnterpriseSession enterpriseSession = sessionMgr.logon(trustedPrincipal);

序列化session

只能说用到的人会觉得他很重要,主要还是看系统用户(万级别)使用率,使用频率(万次/s)等等

系统优化方面的东西太多(计划优化,查询优化,用户登录优化),就不在这里举例。

代码:

public class BoLogin {
     /**
         * 封装登陆逻辑,获取token;
         * @throws SDKException 
         * 如果服务器及网络均正常,那么这个问题很可能是由于未配置系统IP地址解析。可修改本机的Hosts文件修复该问题.
         */
        @SuppressWarnings("deprecation")
        public static String getWcaToken(HttpServletRequest request,HttpServletResponse response) throws SDKException{
            String wcaToken = "";
            HttpSession session = request.getSession();
            ISessionMgr sessionMgr;
            IEnterpriseSession entsession = (IEnterpriseSession) request.getSession().getAttribute("boesession");
            if (entsession == null) {
                sessionMgr = CrystalEnterprise.getSessionMgr();
                //以下userName,password需要改为自己bo登录页面的用户名和密码,ip也要修改为bo所在服务器的ip;
                String userName="",passWord="",ip="";
                entsession = sessionMgr.logon(userName, passWord,ip+":6400", "secEnterprise");
                session.setAttribute("boesession", entsession);
            }
            request.getSession().setAttribute("boesession", entsession);
            /* 其中createLogonToken(java.lang.String clientComputerName, int validMinutes, int validNumOfLogons)
               clientComputerName为使用这个token的客户端计算机名,空字符串表示该token可被任何客户端使用;
               validMinutes为token的有效时间(分钟);
               validNumOfLogons 表示该token允许被使用的最大次数。*/    
            wcaToken = entsession.getLogonTokenMgr().createLogonToken("", 1000,1000);
//            wcaToken = entsession.getLogonTokenMgr().createWCAToken("", 1000,1000);//既然提示过期的方法,就可能有问题  
            String path="http://IP:8080/BOE/BI/logon/start.do?ivsLogonToken=";
            return path+wcaToken;
        }

}

@Controller
public class HelloWorldController {
 
    @RequestMapping("/hello")
    public String hello( HttpServletRequest request,HttpServletResponse response) {
       try {
        String path=BoLogin.getWcaToken(request, response);
        request.setAttribute("path", path);
        return "helloworld";
    } catch (SDKException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
         
    }
 
}

java 与BO集成相关推荐

  1. Java 三大框架集成项目结构

    用MyEclipse开发的Java 三大框架集成项目,典型结构如下. 一 展开项目名称,首先是src文件夹:存放实现业务功能的java源文件*.java: struts2的action代码文件存放在a ...

  2. 如何在Java应用里集成Spark MLlib训练好的模型做预测

    前言 昨天媛媛说,你是不是很久没写博客了.我说上一篇1.26号,昨天3.26号,刚好两个月,心中也略微有些愧疚.今天正好有个好朋友问,怎么在Java应用里集成Spark MLlib训练好的模型.在St ...

  3. knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案

    knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量, ...

  4. java后端实现集成支付宝APP支付(沙箱环境)

    沙箱环境集成支付宝APP支付后端实现 前言 获取支付宝相关信息 整体开发流程 1.获取核心参数 2.将支付宝SDK集成到项目中 3.后台使用支付宝SDK与支付宝进行交互逻辑 1.将支付宝公共信息参数写 ...

  5. java服务端集成信鸽推送

    java服务端集成信鸽推送 最近项目需要集成推送功能,突发奇想的选了信鸽推送(可能是最近一直在用阿里的东西),没想到这坑不是一般的多,而且关于详细的集成案例,度娘上真是没一个能入眼的.算了,别的不多说 ...

  6. java office 集成开发_pageoffice for java(专业的集成)

    pageoffice for java(专业的集成)是一款卓效处理在线办公,轻松助力 OA,使在线办公迈向科技之巅,精彩尽在PageOffice,免费版实现了在线编辑保存Word.Excel.PPT. ...

  7. 在java体系结构中集成Macromedia Flex(翻译)

    原文地址 http://www.onjava.com/pub/a/onjava/2004/12/01/flexjava.html By MarkEagle 12/01/2004 今天我们开发的 J2E ...

  8. java日志统一集成的两种方案

    slf4j架构 Log4j日志集成 Logback日志集成 总结 分享的目的 一次性的解决应用中日志遇到的各种问题,包括:消除应用启动过程中与日志系统相关的无用错误提示,日志打印不出来的问题等: Sl ...

  9. java spring eventbus_spring集成guava的event bus

    Guava的event bus guava, https://github.com/google/guava 是一个非常有名的Java类库,提供了很多在日常开发中常用的集合.函数接口等.此外,guav ...

最新文章

  1. Ubuntu 17.10安装phpMyAdmin数据库管理工具
  2. python生成元组_python 列表生成、元组、字典
  3. 广东省那么发达,为什么还有全国贫困县?
  4. Java版数据结构与算法——线性表
  5. 观察者模式--java jdk中提供的支持
  6. java jlist删除选中的项_java jlist removeListSelectionListener 怎样删除已经建好的 ListSelectionListener...
  7. 洲明科技与意法半导体合作开发新一代LED显示屏
  8. ActiveMQ官方文档翻译-内嵌消息中间件
  9. Winrunner经验总结
  10. 你必须要知道的10款APP开发框架
  11. 国产数据库清单(2020年第1季度)
  12. 转:解决浏览器Adobe Flash Player不是最新版本问题
  13. 程序员删库跑路,开源开发者的出路在哪里
  14. 安装office未能启动服务器,Office 2010安装时遇到1920错误问题怎么解决?
  15. 机器学习算法(十):线性回归之最小二乘法
  16. Win7通过CMD命令开启无线热点
  17. 创客思维在高等教育中的启迪作用
  18. STLINK : Warning: Connection to device 0x413 is lost
  19. 前端体系必备的软技能和知识点
  20. 人类与计算机之间的围棋,棋圣怒吼:别忽悠我 电脑不可能战胜人类

热门文章

  1. RewriteCond判断QUERY_STRING为空的写法?Apache Rewrite解决问号匹配的写法
  2. MRcroGL使用笔记1自定义颜色和图的左右翻转
  3. win10如何打开摄像头_Win10专业版如何开启自带录屏功能?Win10录屏功能的开启方法...
  4. 黑石服务器性能,腾讯云将推出多款黑石新品,还说物理服务器需求很强烈
  5. linux wps只读模式怎么取消,windowsxp系统下如何取消wps只读模式
  6. flexcell绑定MySQL数据_利用FlexCell实现的一些报表统计应用
  7. Vegas 如何实现三维立体调整?
  8. 2021江苏专转本计算机知识,2021年度江苏专转本计算机考试复习知识点归纳内部资料.doc...
  9. 江西省软考报名信息修改
  10. 闲鱼项目靠谱吗?小白入坑全指南!