Struts1 [SSL Switching Extension]

Struts でSSL 送信フォームを簡単に利用できるようにする拡張セット(タグライブラリ)です。
更新日 2016-02-13

ダウンロード

http://sslext.sourceforge.net/のFiles から該当するライブラリをダウンロードします。Tomcat5.5 + struts1.2 に対応するのはsslext-struts1.2-bin.zip となっています。

設定

ダウンロードしたら解凍し、その中のWEB-INF/lib の中にあるsslext.jar ファイルを使いたいWEB アプリケーションの/WEB-INF/lib にコピーします。またsslext.tld ファイルも/WEB-INF/ (←もしくはtld ファイルを格納しているディレクトリ)にコピーします。
web.xml を編集してsslext.tld を登録します。
<taglib>
	<taglib-uri>/tags/sslext</taglib-uri>
	<taglib-location>/WEB-INF/sslext.tld</taglib-location>
</taglib>
struts-config.xml も編集します。
// Action Mapping を変更します。
<action-mappings type="org.apache.struts.config.SecureActionConfig>

// SSL 通信を利用したいアクションでset-property を追加します。
<action path="/login" type="mypackage.loginAction" name="login_dvf"
 scope="request" validate="true" input="/login.jsp">
	<set-property property="secure" value="true" />
	<forward name="false" path="/login.jsp" />
</action>


// Request Processor を変更します。
<controller processorClass="org.apache.struts.action.SecureRequestProcessor"/>

// Plug-in も新規追加します。
<plug-in className="org.apache.struts.action.SecurePlugIn"> 
	<set-property property="httpPort" value="80" />
	<set-property property="httpsPort" value="443" />
	<set-property property="enable" value="true" />
	<set-property property="addSession" value="true" />
</plug-in>
jk2 はアパッチからTomcat への転送を仲介していますが、その際の接続ポート番号も情報として 添付してきます。この情報からhttps 接続かどうかを判別します。デフォルトのhttps ポート番号で ある443 をplug-in でも設定しています。jk2 を経由せずTomcat をスタンドアロンで動かしていて、 しかもhttps の接続をポートを別のもの(例えばTomcat のserver.xml では8443)であれば、それを 設定します。