示例程序¶
示例内容¶
此示例是从intra-mart Accel Platform系统外的Java执行环境取得请求任意页面的URL的示例源代码。 生成用于请求脚本开发模式中生成的页面 “sample/chart/default_graph”的URL。
构筑必要的动作环境¶
进行外部软件联动时、请按照下述步骤生成联动所必需的环境。
请将外部联动客户端模块中包含的类存档/文件“imaca_client-XXX-main.jar”复制到要联动的应用程序动作的环境中。( jar文件位于WAR文件内的“WEB-INF/lib”中。)请为复制的存档文件“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资源。