LoginSignup
1
3

More than 5 years have passed since last update.

wgetでintra-martのテナント管理のライセンス数の設定を行う

Last updated at Posted at 2016-06-23

概要

wgetでintra-martのテナントの初期設定を実施するに引き続き、intra-martの初期設定をwgetでやろう第2弾です。

テナントの初期設定に続き、ライセンス数の設定もwgetでやってみたいと思います。
このライセンス設定画面の無制限のチェックボックスをチェックするのをwgetで対応したいと思います。

ライセンス設定.PNG

前提

以下の環境で動作確認した内容です。
環境としては、テナントの初期設定まで実施済みのものとします。

application version
OS CentOS7
JDK(Oracle) 8u91
Resin 4.0.48
intra-mart 8.0.11
Oracle   12.1.0.2

nkfのインストール

本記事で紹介しているスクリプトを実行するには別途「nkf」のインストールが必要です。
URLエンコード用にnkfを利用しています。
nkfは以下のコマンドでCentOS6のリポジトリからインストールできるようです。
CentOS7にnkfをインストールする方法

yum localinstall -y http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm

なぜか私の環境ではmirror.ceonts.orgが解決できなかったので...

IP直で...
yum localinstall -y http://213.184.126.230/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm

wgetでシステム管理者のセッションを作成する

まず、ログイン前にログインページを表示してim_secure_tokenとim_admin_login_infoを取得します。
取得したログインページンのHTMLをgrepして2項目の値を取得して、nkfでURLエンコードをかましています。

  wget \
     --keep-session-cookies \
     --save-cookies cookies.txt \
     http://localhost:8080/${CONTEXT_PATH}/system/login

  IM_SECURE_TOKEN=`grep "im_secure_token" login | sed 's/.*value="\(.*\)".*/\1/g' | nkf -WwMQ | tr = %`
  IM_ADMIN_LOGIN_INFO=`grep "im_admin_login_info" login | sed 's/.*value="\(.*\)".*/\1/g' | nkf -WwMQ | tr = %`

続いて、システム管理者でログインします。
ログインのpost送信時に、先ほど取得したim_secure_tokenとim_admin_login_infoが必要です。

  wget \
     --keep-session-cookies \
     --load-cookies cookies.txt \
     --save-cookies cookies.txt \
     --post-data "im_user=${SYSTEM_MANAGER_CD}&im_password=${SYSTEM_MANAGER_PASSWORD}&im_admin_login_info=${IM_ADMIN_LOGIN_INFO}&im_page_key=&im_secure_token=${IM_SECURE_TOKEN}" \
     http://localhost:8080/${CONTEXT_PATH}/system/certification

wgetでライセンス数登録

ログイン時に取得したcookie情報を利用してライセンス数の登録を行います。

  wget \
     --load-cookies cookies.txt \
     --post-data "accountLicenseInfinity=infinity&applicationId=XXXXX&tenantLicenseInfinityXXXXX=infinity&applicationId=YYYYY&tenantLicenseInfinityYYYYY=infinity" \
     http://localhost:8080/${CONTEXT_PATH}/system/settings/tenant/license/edit

無制限にチェックを入れたい場合は以下のようなPOSTデータを送信すればよいようです。

アカウントライセンス
"accountLicenseInfinity=infinity"
アプリケーションのライセンス
# XXXXX、YYYYYにはアプリケーションごとのIDを指定します。
"applicationId=XXXXX&tenantLicenseInfinityXXXXX=infinity&applicationId=YYYYY&tenantLicenseInfinityYYYYY=infinity"

まとめると

これで画面を開かずにライセンス数の設定ができます。

まとめ
#!/bin/bash

# システム管理者のユーザID
SYSTEM_MANAGER_CD="system"
# システム管理者のパスワード
SYSTEM_MANAGER_PASSWORD="manager"

CONTEXT_PATH="imart"

rm -f login

wget \
    --keep-session-cookies \
    --save-cookies cookies.txt \
    http://localhost:8080/${CONTEXT_PATH}/system/login

IM_SECURE_TOKEN=`grep "im_secure_token" login | sed 's/.*value="\(.*\)".*/\1/g' | nkf -WwMQ | tr = %` 
IM_ADMIN_LOGIN_INFO=`grep "im_admin_login_info" login | sed 's/.*value="\(.*\)".*/\1/g' | nkf -WwMQ | tr = %`

echo ${IM_SECURE_TOKEN}
echo ${IM_ADMIN_LOGIN_INFO}

LOGIN_POST_DATA="im_user=${SYSTEM_MANAGER_CD}&im_password=${SYSTEM_MANAGER_PASSWORD}&im_admin_login_info=${IM_ADMIN_LOGIN_INFO}&im_page_key=&im_secure_token=${IM_SECURE_TOKEN}"

echo ${LOGIN_POST_DATA}

wget \
    --keep-session-cookies \
    --load-cookies cookies.txt \
    --save-cookies cookies.txt \
    --post-data "${LOGIN_POST_DATA}" \
    http://localhost:8080/${CONTEXT_PATH}/system/certification

wget \
    --load-cookies cookies.txt \
    --post-data "accountLicenseInfinity=infinity&applicationId=XXXXX&tenantLicenseInfinityXXXXX=infinity&applicationId=YYYYY&tenantLicenseInfinityYYYYY=infinity" \
    http://localhost:8080/${CONTEXT_PATH}/system/settings/tenant/license/edit
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3