[Seasar-user:12398] 【S2Container】DbSessionStateManagerImpl拡張のための修正依頼
Akira Nishikata
[E-MAIL ADDRESS DELETED]
2008年 1月 7日 (月) 21:41:45 JST
お世話になります。西方と申します。
現在作成中のWebシステムで、
Javaアプリ⇔Javaアプリ⇔.NETアプリ
の3システム間でセッション情報の共有化を行う必要があり、
S2のDBSessionレプリケーション機能の評価を行っております。
はじめはJava側でシリアライズしたオブジェクトを.NETでシリアライズしようと
したところ、ノウハウが無いせいもあり上手くいきませんでした。
そこで、
Java側【文字列】 → .NET側
のようにXMLなどの非シリアライズ文字列ベースで受け渡しを行おうとしたのですが、
S2内部で文字列もシリアライズされてしまうため、.NET側で復元することが出来ません。
よってDbSessionStateManagerImplの独自拡張を行いたいのですが、
拡張しやすくは出来ていないようです。
そこで以下の対応をお願いしたいです。
◆ DbSessionStateManagerImpl
==============================================================================
【1】ObjectをBinary化する箇所をprotectedメソッド化して欲しい。
byte[] value = SerializeUtil.fromObjectToBinary(sessionState
.getAttribute(name));
↓
protected byte[] fromObjectToBinary(String sessionId, String name, SessionState sessionState) {
return SerializeUtil.fromObjectToBinary(sessionState.getAttribute(name));
}
【2】DbSessionStateManagerImpl
SessionStateのインスタンスを生成している箇所をprotectedメソッド化して欲しい。
(SessionStateをOverrideするため)
return new SessionState(binaryData);
↓
protected SessionState createSessionState(Map binaryData) {
return new SessionState(binaryData);
}
==============================================================================
◆ SessionState
==============================================================================
BinaryをObjectに復元する箇所をprotectedメソッド化して欲しい。
Object value = SerializeUtil.fromBinaryToObject(binary);
↓
protected Object fromBinaryToObject(byte[] binary) {
return SerializeUtil.fromBinaryToObject(binary);
}
==============================================================================
◆ SessionFilter
==============================================================================
Cookieに書き出すところをprotectedメソッド化したい。
(ドメイン属性にサブドメインを指定したクッキーを利用したいため)
SessionIdUtil.writeCookie(requestWrapper, responseWrapper,
requestWrapper.getSessionId());
↓
protected void writeCookie(...) {
SessionIdUtil.writeCookie(requestWrapper, responseWrapper, requestWrapper.getSessionId());
}
==============================================================================
◆ SessionIdUtil
==============================================================================
SESSION_ID_KEYをプロジェクト固有のものにしたい。
==============================================================================
以上、ご検討のほどよろしくお願いいたします。
-----------------------------------------
株式会社ビルドシステム 業務システム開発部
西方 彬 <[E-MAIL ADDRESS DELETED]>
-----------------------------------------
Seasar-user メーリングリストの案内