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.");
    }

另一种是通过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);

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

时间: 2024-11-10 07:28:31

SDK登录cognos的相关文章

Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题

前言 近期在使用第三方登录和分享的过程中遇到了非常多问题,一方面能够归结为自己经验的不足,还有一方面事实上也说明了官方文档的含糊不清.这篇博文不会写关于怎样使用第三方登录分享,由于官方文档已经写明了步骤,这里要写的东西是官方文档里面没用说明的一些问题,也是我自己在摸索的过程中发现和解决的问题. 一.微博登录和分享 微博sdk的集成过程官方下载的sdk文档中已经基本说明清楚了.这里不提了,说两个常常遇到过问题. 1.登录后停留在授权页,也就是登录后没有返回我们的应用.排除代码方面的原因后.还有几个

QQ快捷登录(sdk登录)

1.在 AndroidManifest.xml 中配置 <!-- Sdk QQ快捷登录配置 --> <activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="portrait"

教你快速高效接入SDK——渠道SDK的接入(就是实现抽象层的接口而已)

题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道.每个渠道SDK接入的方法呢,多是大同小异.但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数.所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了.如果你之前被坑过,而且还在继续被坑着,那么现在,就是你解脱的时刻. 先将之前的每一篇做个索引,方便亲们查阅

教你快速高效接入SDK——U8Server的初步分析

在U8SDK整套框架总体架构那篇文章,我们就给出了服务器端的解决方案,为此,我们加入了一个U8Server,来作为U8SDK整套框架的服务器端的统一用户认证中心和支付中心.那么,为了方便,我们这里再来引用一下登陆认证的流程图: 回顾下我们之前的分析,U8Server作为统一的登陆认证中心,针对的是多款游戏,那么每款游戏在接入SDK之前,就需要向U8Server申请一个AppID以及AppKey.这样,申请的过程,也就是在U8 Server中加入一条该游戏的数据记录.接下来,游戏需要配置每一个第三

iOS 第三方登录(QQ 微信 新浪微博)

一.QQ登录 1.登录腾讯开放平台,创建一个应用,获取APP_KEY和APP_ID 2.下载对应的SDK 3.下载 iOS SDK环境搭建 1.导入SDK,配置工程 1.下载SDK到本地后,将SDK拖入工程中 2.添加所需的依赖库 Security.framework SystemConfiguration.framework CoreGraphics.Framework CoreTelephony.framework libiconv.tdb libsqlite3.tdb libstdc++.

环信SDK与Apple Watch的结合(2)

这一篇主要是介绍怎么拖apple watch上的相关页面,附源码EMWatchOCDemo. 需要在工程中的“EMWatchOCDemo WatchKit App”中进行操作,该文件夹的 WatchKit几乎不允许直接coding页面,只能在storyboard上拖来拖去,对于我这种习惯直接coding 页面的人来说,真真是极痛苦的. 一.确定apple watch上的操作流程 首先,我想要一个菜单页面,跟iPhone程序对应,在环信SDK未登录情况下,显示登录选项;在环信 SDK登录情况下,有

教你高速高效接入SDK——Unity统一接入渠道SDK(Android篇)

U8SDK的设计之初,就是为了可以支持各种游戏引擎开发的游戏,而不不过Android的原生平台.眼下一大半的手游,都是採用Unity3D和Cocos2dx开发,那么这里,我们就先来一步步给大家演示,用Unity开发的游戏,怎样通过U8SDK来高速地完毕多家渠道SDK的接入. Unity研发的手游,仅仅须要调用U8SDK抽象层就可以完毕多家渠道SDK的接入.而不须要在Unity中耦合各个渠道SDK,保证游戏层逻辑层的简单,以及SDK部分的绝对重用. 以下,我们看看,在Unity中调用U8SDK主要

Cognos权限认证CJP方式之用户密码加密

在项目开发过程中,用户往往对系统的安全都有明确的要求,下面针对cognos门户认证用户密码如何加密来提供一个简单的wf 1Cognos权限认证方式:CJP 2Cognos用户数据库类型:Oracle 3用户密码加密方式:MD5 本文主要说一下大概的实现过程: a:加密方式采用md5,可以用Java代码来写方法实现,也可以在数据库中写方法,本例子采用在DB服务端写function的方法来处理md5加密问题 (1):为了方便大家,附上md5加密方法源码 CREATE OR REPLACE FUNCT

分析Cocos2d-x横版ACT手游源 1、登录

我自己的游戏代码 因为 游戏源 盯着外面的 我们能够能够理解 /************************************************************************/ /* 登录场景 */ /************************************************************************/ class CNFLoginScene : public CCLayer ,public CMsgReceiver