intra-mart Accel Platform / 外部软件连接模块 式样书

«  概要   ::   内容

示例程序

示例内容

此示例是从intra-mart Accel Platform系统外的Java执行环境取得请求任意页面的URL的示例源代码。 生成用于请求脚本开发模式中生成的页面 “sample/chart/default_graph”的URL。

构筑必要的动作环境

进行外部软件联动时、请按照下述步骤生成联动所必需的环境。
  1. 请将外部联动客户端模块中包含的类存档/文件“imaca_client-XXX-main.jar”复制到要联动的应用程序动作的环境中。
    ( jar文件位于WAR文件内的“WEB-INF/lib”中。)
  2. 请为复制的存档文件“imaca_client-XXX-main.jar”设定类路径。


jar文件版本不同时,有可能无法正常联动,若应用了补丁等或版本已升级,请多加注意。 但是,对intra-mart Accel Platform应用补丁时,请覆盖复制补丁中包含的imaca_client-XXX-main.jar后再使用。

程序源代码

package jp.co.intra_mart.sample.service.client.application;

import java.io.IOException;

import jp.co.intra_mart.foundation.service.client.application.HTTPActionEventHandler;
import jp.co.intra_mart.foundation.service.client.application.HTTPActionEventHandlerException;
import jp.co.intra_mart.foundation.service.client.application.HTTPActionEventURL;
import jp.co.intra_mart.foundation.service.client.application.PasswordSecurityHTTPActionEventFilterHandler;
import jp.co.intra_mart.foundation.service.client.application.WebApplicationHTTPActionEventHandler;
import jp.co.intra_mart.foundation.service.client.application.content.AccessibleLinkHTTPActionEventFilterHandler;
import jp.co.intra_mart.foundation.service.client.application.content.PresentationPageHTTPActionEventHandler;

public class JSSPConnectURLCreator {

    /**
     * 从命令提示指定作为主类时执行的方法。
     * @param args 命令行参数
     */
    public static void main(final String[] args) {
        try {
            // 取得用于请求脚本开发模式画面的URL
            final String jsspURL = createJSSPURL();
            // 显示结果
            System.out.println("URL: " + jsspURL);
        } catch (final Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 根据指定的账号/密码在安全会话环境生成菜单画面并返回源代码。
     * @return 页面URL
     * @throws IOException 发生了输入输出错误时抛出该异常。
     * @throws HTTPActionEventHandlerException 事件执行中发生了异常时抛出该异常。
     */
    public static String createJSSPURL() throws IOException, HTTPActionEventHandlerException {
        // 事件执行处理器的生成
        final String path = "sample/chart/default_graph";
        HTTPActionEventHandler handler = new PresentationPageHTTPActionEventHandler(path);

        // 使用绝对路径链接的定义
        handler = new AccessibleLinkHTTPActionEventFilterHandler(handler);

        // 登录/安全环境的构筑
        final String userCd = "user";
        final String password = "password";
        handler = new PasswordSecurityHTTPActionEventFilterHandler(handler, userCd, password);

        // 取得URL
        final String url = "http://localhost:8080/imart/HTTPActionEventListener";
        final HTTPActionEventURL result = WebApplicationHTTPActionEventHandler.getURL(handler, url);
        return result.getURL();
    }

}

注解

编译此源代码时,请在类路径中设定“imaca_client-XXX-main.jar”。
执行时,请将编译此源代码后得到的类文件保存在可由执行的Java流程环境使用的场所。

登录/安全环境的构筑

若要在登录会话环境中处理事件,则需要使用下述任一ActionEventFilterHandler。
  • jp.co.intra_mart.foundation.service.client.application.GroupSecurityHTTPActionEventFilterHandler

    以Anonymous用户处理事件。

  • jp.co.intra_mart.foundation.service.client.application.AccountSecurityHTTPActionEventFilterHandler

    以指定用户代码的用户进行登录认证,并处理事件。

  • jp.co.intra_mart.foundation.service.client.application.PasswordSecurityHTTPActionEventFilterHandler

    以指定用户代码/密码进行登录认证,并处理事件。

注解

无法在标准状态下使用GroupSecurityHTTPActionEventFilterHandler以及AccountSecurityHTTPActionEventFilterHandler。
想使用时,请将“WEB-INF/web.xml”中记述的HTTPActionEventListener的init-param“use.account.security”的值指定为true。

外部软件联动时的许可设定

使用外部软件联动模块处理事件时,若想通过认可功能进行访问控制,则请在登录・登录安全用的ActionEventFilterHandler之前设定下述ActionEventFilterHandler。

  • jp.co.intra_mart.foundation.service.client.application.AuthorizationHTTPActionEventFilterHandler

    使用指定的许可URI进行访问控制。


实现例

若想要只有持有许可URI“service://sample/chart/default_graph”资源的访问权限的用户可进行处理,则按照下述说明实现。

// 事件执行处理器的生成
final String path = "sample/chart/default_graph";
HTTPActionEventHandler handler = new PresentationPageHTTPActionEventHandler(path);

// 使用绝对路径链接的定义
handler = new AccessibleLinkHTTPActionEventFilterHandler(handler);

// 用于进行访问控制的定义
handler = new AuthorizationHTTPActionEventFilterHandler(handler, "service://sample/chart/default_graph", "execute");

// 登录/安全环境的构筑
final String userCd = "user";
final String password = "password";
handler = new PasswordSecurityHTTPActionEventFilterHandler(handler, userCd, password);

// 取得URL
final String url = "http://localhost:8080/imart/HTTPActionEventListener";
final HTTPActionEventURL result = WebApplicationHTTPActionEventHandler.getURL(handler, url);
return result.getURL();

注解

使用通过认可功能进行访问控制的功能时,请预先设定要使用的URI资源。

«  概要   ::   内容