OpenIDMにおけるREST APIのコンテキスト名は変更することができない

久しぶりの更新です。

さて表題の件についてですが、ソースを見てみるのが早いのでさっさとソースを見てみましょう。

FishEye: Diff - openidm/trunk/openidm-api-servlet/src/main/java/org/forgerock/openidm/servlet/internal/ServletComponent.java

@Activate
protected void activate(ComponentContext context) throws ServletException, NamespaceException {
    logger.debug("Try registering servlet at {}", SERVLET_ALIAS);
    servlet = new HttpServlet(connectionFactory, new IDMSecurityContextFactory(augmentSecurityScripts));
 
    servletRegistration.registerServlet(SERVLET_ALIAS, servlet, new Hashtable());
    logger.info("Registered servlet at {}", SERVLET_ALIAS);
}

部分的に抜粋すると、上記のソースの中でServletRegistration#registerServlet()している部分が該当のロジックです。 こちらの第一引数に SERVLET_ALIAS という定数を設定していますね。

ではこの SERVLET_ALIAS はどこで設定されているかというと、ServletComponent.javaの中で以下のように定義されています。

private static final String SERVLET_ALIAS = "/openidm";

完全に固定文字列です。
コンテキスト名を変更する場合は、ソースからの再ビルドが必要になりますね。