zoukankan      html  css  js  c++  java
  • SDK登录cognos

    通过SDK登录cognos

    一种是拼xml,如这里的实现https://github.com/cosysoft/cognos-tools/blob/master/src/com/ibm/cognos/Logon.java

    部分代码:

    public String logon(CRNConnect connection) {
            // NOTE: If you are already logged on, you must first log off
            // before you can log on as a different user.
            logoff(connection);
    
            String namespaceInfo[] = getNamespaces(connection);
    
            // namespaceInfo is name/ID pairs -- always even
            String namespaces[] = new String[namespaceInfo.length / 2];
            String namespaceIDs[] = new String[namespaceInfo.length / 2];
    
            for (int j = 0, k = 0; k < namespaceInfo.length; j++, k++) {
                namespaces[j] = namespaceInfo[k++];
                namespaceIDs[j] = namespaceInfo[k];
            }
    
            userID = "admin";
            password = "123";
            nameSpace = "OpenDJ";
            StringBuffer credentialXML = new StringBuffer();
            credentialXML.append("<credential>");
    
            credentialXML.append("<namespace>");
            credentialXML.append(nameSpace);
            credentialXML.append("</namespace>");
    
            credentialXML.append("<username>");
            credentialXML.append(userID);
            credentialXML.append("</username>");
    
            credentialXML.append("<password>");
            credentialXML.append(password);
            credentialXML.append("</password>");
    
            credentialXML.append("</credential>");
    
            String encodedCredentials = credentialXML.toString();
    
            credentialString = encodedCredentials;
    
            try {
                connection.getCMService().logon(
                        new XmlEncodedXML(encodedCredentials),
                        new SearchPathSingleObject[] {});
                SOAPHeaderElement x = ((Stub) connection.getCMService())
                        .getResponseHeader(
                                "http://developer.cognos.com/schemas/bibus/3/",
                                "biBusHeader");
                ((Stub) connection.getCMService()).setHeader(x);
    
                password = "";
            } catch (java.rmi.RemoteException remoteEx) {
                userID = "";
                password = "";
                nameSpace = "";
                credentialString = "";
                
                remoteEx.printStackTrace();
                return "";
            }
    
            System.out.println("登陆成功.................");
            return ("Logon successful.");
        }
    View Code

    另一种是通过bibus设置session中的form

    bibus.getHdrSession().setFormFieldVars(ffs);

    部分代码:

    BiBusHeader bibus = BIBusHeaderHelper.getHeaderObject(((Stub)repService).getResponseHeader("http://developer.cognos.com/schemas/bibus/3/", BIBUSConstants.BIBUS_HDR));//("", BIBUSConstants.BIBUS_HDR));
    if (bibus != null)
            {
                if (bibus.getTracking() != null)
                {
                    if (bibus.getTracking().getConversationContext() != null)
                    {
                        bibus.getTracking().setConversationContext(null);
                    }
                }
    
                return;
            }
    
            // Set up a new biBusHeader for the "logon" action.
            bibus = new BiBusHeader();
            bibus.setCAM(new CAM());
            bibus.getCAM().setAction(logonAs);
            bibus.setHdrSession(new HdrSession());
    
            FormFieldVar ffs[] = new FormFieldVar[3];
    
            ffs[0] = new FormFieldVar();
            ffs[0].setName("CAMUsername");
            ffs[0].setValue(user);
            ffs[0].setFormat(FormatEnum.not_encrypted);
    
            ffs[1] = new FormFieldVar();
            ffs[1].setName("CAMPassword");
            ffs[1].setValue(pass);
            ffs[1].setFormat(FormatEnum.not_encrypted);
    
            ffs[2] = new FormFieldVar();
            ffs[2].setName(CAMNamespace);
            ffs[2].setValue(name);
            ffs[2].setFormat(FormatEnum.not_encrypted);
    
            bibus.getHdrSession().setFormFieldVars(ffs);
            ((Stub)repService).setHeader(BIBUSConstants.BIBUS_NS, BIBUSConstants.BIBUS_HDR, bibus);
    View Code

    namespace可以从Cognos Configuration中看到,如上图

  • 相关阅读:
    UE4.7的IOS发布和调试的相关问题
    【翻译】CEDEC2015 速成Albedo Chart 制作
    【翻译】KNACK制作介绍
    【翻译】口袋妖怪X/Y 制作技法
    【翻译】圣斗士星矢:圣域传说 制作介绍 特效合成等
    【翻译】圣斗士星矢:圣域传说 制作介绍 场景篇
    Linux 磁盘管理
    linux 文件系统
    Ubuntu18.04系统安装与设置
    C#(99):lazy延迟加载
  • 原文地址:https://www.cnblogs.com/yoyogis/p/4942973.html
Copyright © 2011-2022 走看看