-
Notifications
You must be signed in to change notification settings - Fork 56
Migration Guide 5.1.1_ja
.. only:: html .. contents:: 目次 :depth: 2 :local:
5.1.1での主な変更点は以下の通りです。
5.1.1から、下記のバグ修正を取り込むために、MyBatis 3.3.1へ更新しました。 この更新にあわせて、MyBatis Springを1.2.5へ更新しました。
- [#492] NPE when ResultSet is null
5.1.1から、バグ修正に伴い共通ライブラリの一部仕様を変更しました。
- [#554] MessagePanelTag doesn't close with </div> when it's empty
- [#565] TransactionToken does not support some special flows
- [#593] createToken() of TransactionTokenContextImpl does not work properly
5.1.1から、ブランクプロジェクトの一部設定ファイルを変更しました。
共通ライブラリの修正に伴った変更
セキュリティの脆弱性[(CVE-2016-5007)]を解決するための変更
- [single#201] [multi#244] Add workaround settings for CVE-2016-5007(Path Matching Inconsistency)
移行手順は、以下の通りです。
Note
凡例
Required : 手順の適用は必須Required by case : 手順の適用は条件付きで必須Optional : 手順の適用を推奨 (必要に応じて手順の適用を実施)- : 手順の適用は必要なし
[全般]
.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ | 手順 | MavenMultiple Projects | MavenSingle Project | EclipseWTP Project |
---|---|---|---|---|
|
依存ライブラリを更新 | Required | Required | Required |
|
RestClientのHTTPプロキシ設定の変更 | Optional | Optional | Optional |
[Spring Security]
.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ | 手順 | MavenMultiple Projects | MavenSingle Project | EclipseWTP Project |
---|---|---|---|---|
|
[CVE-2016-5007] MVC Path Matching Inconsistencyの脆弱性解決のための設定 | Required | Required | Required |
[Apache Commons Fileupload]
.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ | 手順 | MavenMultiple Projects | MavenSingle Project | EclipseWTP Project |
---|---|---|---|---|
|
[CVE-2016-3092] Apache Commons Fileuploadの脆弱性解決のための設定 | Required by case | Required by case | Required by case |
[MyBatis Spring]
.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ | 手順 | MavenMultiple Projects | MavenSingle Project | EclipseWTP Project |
---|---|---|---|---|
|
SqlSessionTemplate をBean定義すると、アプリケーション終了時にWARNログが出力されるバグの解消に伴う暫定対処解除 |
Required by case | Required by case | Required by case |
[共通ライブラリ]
.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ | 手順 | MavenMultiple Projects | MavenSingle Project | EclipseWTP Project |
---|---|---|---|---|
|
MassagePanelTag の仕様変更に伴う修正 |
Required by case | Required by case | Required by case |
|
TransactionTokenContext の非推奨化に伴う修正 |
Required by case | Required by case | Required by case |
|
@TransactionTokenCheck のtype属性、TransactionTokenType.CHECK の追加に伴う修正 |
Optional | Optional | Optional |
TERASOLUNA Server Framework for Java (5.x)の共通ライブラリと依存ライブラリを更新してください。
.. tabularcolumns:: |p{0.35\linewidth}|p{0.25\linewidth}|p{0.25\linewidth}|p{0.15\linewidth}|
ライブラリ名 | 更新前バージョン | 更新後バージョン | 備考 |
---|---|---|---|
TERASOLUNA Server Framework for Java (5.x) Common Library | 5.1.0.RELEASE | 5.1.1.RELEASE | |
MyBatis | 3.3.0 | 3.3.1 | |
MyBatis Spring | 1.2.3 | 1.2.5 |
[手順が必要なケース]
この手順の適用は必須です。
この更新手順は、mvn archetype を使用して作成したプロジェクト向けです。
親プロジェクトのpomファイルの version
を 5.1.1.RELEASE
に修正してください。
- (
$YOUR_MULTIPLE_PROJECT_ROOT/pom.xml
)
<!-- omitted -->
<parent>
<groupId>org.terasoluna.gfw</groupId>
<artifactId>terasoluna-gfw-parent</artifactId>
<version>5.1.1.RELEASE</version> <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->
この更新手順は、mvn archetype を使用して作成したプロジェクト、又は release site からダウンロードしたプロジェクト向けです。
プロジェクトのpomファイルの version
を 5.1.1.RELEASE
にしてください。
- (
$YOUR_SINGLE_PROJECT/pom.xml
)
<!-- omitted -->
<parent>
<groupId>org.terasoluna.gfw</groupId>
<artifactId>terasoluna-gfw-parent</artifactId>
<version>5.1.1.RELEASE</version> <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->
この更新手順は、release site からダウンロードしたEclipse WTPプロジェクト向けです。
更新手順は、Eclipse WTP Project使用時のライブラリ更新 を参照してください。
5.1.1から、アプリケーション全体に影響を与えてしまうため、 システムプロパティからRestClientへHTTPプロキシの推奨設定を変更しました。
[手順が必要なケース]
RestClientのHTTPプロキシの設定をシステムプロパティに行っている場合、この手順の適用推奨します。
[修正方法]
SimpleClientHttpRequestFactory
またはHttpComponentsClientHttpRequestFactory
を使用し、
RestTemplate
毎にHTTP Proxyサーバの設定を行うよう修正を行ってください。
【修正前】
- システムプロパティに設定する例
//omitted
@Value("${api.proxy.host}")
String proxyHost;
@Value("${api.proxy.portNum}")
String proxyPort;
// omitted
System.setProperty("http.proxyHost", proxyHost);
System.setProperty("http.proxyPort", proxyPort);
【修正後】
修正後の実装についてはガイドラインのHTTP Proxyサーバの設定方法を参照してください。 ( English または Japanese )
[手順が必要なケース]
この手順の適用は必須です。
ただし、意図的にスペースの入ったURLを使用している場合、これを適用することでシステムが正常に動作しなくなる可能性があるのでご注意ください。
[修正方法]
spring-mvc.xmlに下記設定を追加してください。
【修正前】
<mvc:annotation-driven>
<!-- omitted -->
</mvc:annotation-driven>
【修正後】
<mvc:annotation-driven>
<!-- omitted -->
<mvc:path-matching path-matcher="pathMatcher" />
</mvc:annotation-driven>
<bean id="pathMatcher" class="org.springframework.util.AntPathMatcher">
<property name="trimTokens" value="false" />
</bean>
詳細は、アクセスポリシーを適用するWebリソースの指定のWarningを参照してください。 ( English または Japanese )
下記脆弱性への対処が必要な場合があります。
[CVE-2016-3092] Apache Commons Fileupload information disclosure vulnerability
[手順が必要なケース]
5.1.1が準拠しているSpring IO Platform 2.0.1.RELEASEで管理されているバージョンのApache Commons Fileupload
を使用した場合、
CVE-2016-3092で報告されている脆弱性が発生します。
また、独自にApache Commons Fileupload
のバージョンを変更して使用している場合も同様です。
詳細はガイドラインのFile Upload Warningを参照してください。 ( English または Japanese )
[修正方法]
Apache Commons Fileupload
を使用する場合、バージョン1.3.2以上を使用します。
【修正前】
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
【修正後】
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
5.1.1から、MyBatis Springを1.2.5へ更新したことでバグの修正が行われました。
[手順が必要なケース]
SqlSessionTemplate
をBean定義すると、アプリケーション終了時にWARNログが出力されるバグに対する暫定対処を行っていた場合、
必要に応じて修正を行ってください。
[修正内容]
SpringのApplicationContextの終了処理時に呼び出されるメソッド(destroy-method
属性)を削除する。
【修正前】
<bean id="batchSqlSessionTemplate"
class="org.mybatis.spring.SqlSessionTemplate"
destroy-method="getExecutorType">
<constructor-arg index="0" ref="sqlSessionFactory"/>
<constructor-arg index="1" value="BATCH"/>
</bean>
【修正後】
<bean id="batchSqlSessionTemplate"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
<constructor-arg index="1" value="BATCH"/>
</bean>
[手順が必要なケース]
MassagePanelTag
の仕様を意識したテスト等の実装を行っている場合、修正が必要です。
[仕様変更内容]
値が空の場合、<div/>
を出力していましたが、
空の場合でも完全タグ<div></div>
を出力するように変更しました。
詳細は以下を参照してください。
- [#554] MessagePanelTag doesn't close with </div> when it's empty
5.1.1から、TransactionTokenContext
が非推奨になりました。
[手順が必要なケース]
TransactionTokenContext
を使用していた場合、使用しないよう修正が必要です。
[備考]
TransactionTokenContext
が提供していたアプリケーション向けAPIを使用した場合、
TransactionToken
を正しい状態に維持できなくなるなど、フレームワーク内部の挙動に影響を及ぼすような作り込みができてしまうことから、
当該APIを利用しないことを推奨します。
[手順が必要なケース]
この手順の適用は任意です。必要に応じて、確認を行ってください
[仕様変更内容]
@TransactionTokenCheck
のtype属性にTransactionTokenType.CHECK
が追加されました。
詳細は、ガイドラインの@TransactionTokenCheckアノテーションの属性についての項番3、typeのCHECK
を参照してください。
( English または Japanese )
この更新手順は、release site からダウンロードしたEclipse WTPプロジェクト向けです。
Note
凡例
[テーブルヘッダ]Non : O/R Mapperに非依存のブランクプロジェクトMB3 : MyBatis3用のブランクプロジェクトJPA : JPA用のブランクプロジェクト[備考欄]* : オペレーション対象
Eclipse WTP Project of 5.1.1.RELEASE をダウンロードしてください。
Eclipseが起動している場合、Eclipseを終了します。
$YOUR_ECLIPSE_WTP_PROJECT/src/main/webapp/WEB-INF/lib
のjarファイルを更新(削除して追加)してください。
.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 | 削除ファイル | 追加ファイル | Non | MB3 | JPA |
---|---|---|---|---|---|
TERASOLUNA Server Framework for Java (5.x) Common Library | terasoluna-gfw-common-5.1.0.RELEASE.jar | terasoluna-gfw-common-5.1.1.RELEASE.jar | * | * | * |
terasoluna-gfw-jodatime-5.1.0.RELEASE.jar | terasoluna-gfw-jodatime-5.1.1.RELEASE.jar | * | * | * | |
terasoluna-gfw-security-core-5.1.0.RELEASE.jar | terasoluna-gfw-security-core-5.1.1.RELEASE.jar | * | * | * | |
terasoluna-gfw-security-web-5.1.0.RELEASE.jar | terasoluna-gfw-security-web-5.1.1.RELEASE.jar | * | * | * | |
terasoluna-gfw-web-5.1.0.RELEASE.jar | terasoluna-gfw-web-5.1.1.RELEASE.jar | * | * | * | |
terasoluna-gfw-web-jsp-5.1.0.RELEASE.jar | terasoluna-gfw-web-jsp-5.1.1.RELEASE.jar | * | * | * | |
terasoluna-gfw-mybatis3-5.1.0.RELEASE.jar | terasoluna-gfw-mybatis3-5.1.1.RELEASE.jar | * | |||
terasoluna-gfw-jpa-5.1.0.RELEASE.jar | terasoluna-gfw-jpa-5.1.1.RELEASE.jar | * | |||
MyBatis | mybatis-3.3.0.jar | mybatis-3.3.1.jar | * | ||
mybatis-spring-1.2.3.jar | mybatis-spring-1.2.5.jar | * |
$YOUR_ECLIPSE_WTP_PROJECT/libsrc
のソース格納用jarファイルを更新(削除して追加)してください。
.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 | 削除ファイル | 追加ファイル | Non | MB3 | JPA |
---|---|---|---|---|---|
TERASOLUNA Server Framework for Java (5.x) Common Library | terasoluna-gfw-common-5.1.0.RELEASE-sources.jar | terasoluna-gfw-common-5.1.1.RELEASE-sources.jar | * | * | * |
terasoluna-gfw-jodatime-5.1.0.RELEASE-sources.jar | terasoluna-gfw-jodatime-5.1.1.RELEASE-sources.jar | * | * | * | |
terasoluna-gfw-security-web-5.1.0.RELEASE-sources.jar | terasoluna-gfw-security-web-5.1.1.RELEASE-sources.jar | * | * | * | |
terasoluna-gfw-web-5.1.0.RELEASE-sources.jar | terasoluna-gfw-web-5.1.1.RELEASE-sources.jar | * | * | * | |
terasoluna-gfw-web-jsp-5.1.0.RELEASE-sources.jar | terasoluna-gfw-web-jsp-5.1.1.RELEASE-sources.jar | * | * | * | |
MyBatis | mybatis-3.3.0-sources.jar | mybatis-3.3.1-sources.jar | * | ||
mybatis-spring-1.2.3-sources.jar | mybatis-spring-1.2.5-sources.jar | * |
置換文字列を使用して、参照ライブラリを更新してください。
$YOUR_ECLIPSE_WTP_PROJECT/.classpath
$YOUR_ECLIPSE_WTP_PROJECT/build.xml
.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 | 置換対象文字 | 置換文字 | Non | MB3 | JPA |
---|---|---|---|---|---|
TERASOLUNA Server Framework for Java (5.x) Common Library | terasoluna-gfw-common-5.1.0.RELEASE | terasoluna-gfw-common-5.1.1.RELEASE | * | * | * |
terasoluna-gfw-jodatime-5.1.0.RELEASE | terasoluna-gfw-jodatime-5.1.1.RELEASE | * | * | * | |
terasoluna-gfw-security-web-5.1.0.RELEASE | terasoluna-gfw-security-web-5.1.1.RELEASE | * | * | * | |
terasoluna-gfw-web-5.1.0.RELEASE | terasoluna-gfw-web-5.1.1.RELEASE | * | * | * | |
terasoluna-gfw-web-jsp-5.1.0.RELEASE | terasoluna-gfw-web-jsp-5.1.1.RELEASE | * | * | * | |
MyBatis | mybatis-3.3.0 | mybatis-3.3.1 | * | ||
mybatis-spring-1.2.3 | mybatis-spring-1.2.5 | * |