Migration Guide 5.5.2_ja - terasolunaorg/terasoluna-gfw GitHub Wiki

5.5.1から5.5.2への移行ガイド

.. only:: html

 .. contents:: 目次
    :depth: 2
    :local:

5.5.2での主な変更点

5.5.2での主な変更点は以下の通りです。

  • Hibernate ORMを5.3.20.Finalへ更新

Hibernate ORMを5.3.20.Finalへ更新

Hibernate ORM 5.3.20.Finalへ更新しました。

共通ライブラリの仕様を一部変更

共通ライブラリの一部仕様の変更と機能の追加を行いました。

  • [#1028] Apply Hibernate ORM 5.3.20

5.5.1から5.5.2への移行手順

移行手順は、以下の通りです。

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

[共通ライブラリ]

.. 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
Hibernate ORMの脆弱性解決のための設定 Required by case Required by case Required by case

[Step 1] 依存ライブラリを更新

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.5.1.RELEASE 5.5.2.RELEASE  
Hibernate ORM 5.3.7.Final 5.3.20.Final  

[手順が必要なケース]

この手順の適用は必須です。

[Step 1-1] Maven Multiple Projectsを利用している場合

この更新手順は、mvn archetype を使用して作成したプロジェクト向けです。

親プロジェクトのPOMファイルの version5.5.2.RELEASE に修正してください。

  • ($YOUR_MULTIPLE_PROJECT_ROOT/pom.xml)
<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.5.2.RELEASE</version>                    <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

[Step 1-2] Maven Single Projectを利用している場合

この更新手順は、mvn archetype を使用して作成したプロジェクト、又は release site からダウンロードしたプロジェクト向けです。

プロジェクトのPOMファイルの version5.5.2.RELEASE にしてください。

  • ($YOUR_SINGLE_PROJECT/pom.xml)
<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.5.2.RELEASE</version>                    <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

[Step 2] Hibernate ORMの脆弱性解決のための設定

5.5.2より、下記の脆弱性を解決するためHibernate ORMを5.3.20.Finalへ更新しました。

[CVE-2020-25638] Potential for SQL injection on use_sql_comments logging enabled

[手順が必要なケース]

5.5.2が利用しているHibernate ORM 5.3.20.Finalを使用すれば、CVE-2020-25638で報告されている脆弱性は発生しません。

動作するAPサーバによっては、アプリケーションではなくAPサーバに同梱されたHibernate ORMが使用される場合がある点にもご注意ください。 例としてJBoss EAP 7では、jboss-deployment-structure.xmlの作成と設定のようにjpaサブシステムを除外していない場合、JBossに同梱されたHibernate ORMが使用される可能性があります。

脆弱性対策のためhibernate.use_sql_comments=falseに変更を行っていた場合はtrueに戻してください。 5.5.2よりガイドラインにhibernate.use_sql_commentsの設定の指針を追加しているため、設定を変更する際はEntityManagerの設定を参考にしてください。

5.5.2用のAppendix

Eclipse WTP Project使用時のライブラリ更新

この更新手順は、release site からダウンロードしたEclipse WTPプロジェクト向けです。

Note

凡例

[テーブルヘッダ]
Non : O/R Mapperに非依存のブランクプロジェクト
MB3 : MyBatis3用のブランクプロジェクト
JPA : JPA用のブランクプロジェクト
[備考欄]
* : オペレーション対象

[Step 1]

Eclipse WTP Project of 5.5.2.RELEASE をダウンロードしてください。

[Step 2]

Eclipseが起動している場合、Eclipseを終了します。

[Step 3]

$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.5.1.RELEASE.jar terasoluna-gfw-common-5.5.2.RELEASE.jar * * *
  terasoluna-gfw-jodatime-5.5.1.RELEASE.jar terasoluna-gfw-jodatime-5.5.2.RELEASE.jar * * *
  terasoluna-gfw-security-web-5.5.1.RELEASE.jar terasoluna-gfw-security-web-5.5.2.RELEASE.jar * * *
  terasoluna-gfw-web-5.5.1.RELEASE.jar terasoluna-gfw-web-5.5.2.RELEASE.jar * * *
  terasoluna-gfw-web-jsp-5.5.1.RELEASE.jar terasoluna-gfw-web-jsp-5.5.2.RELEASE.jar * * *
Hibernate ORM hibernate-core-5.3.7.Final.jar hibernate-core-5.3.20.Final.jar *
  hibernate-entitymanager-5.3.7.Final.jar hibernate-entitymanager-5.3.20.Final.jar *
  javassist-3.23.1-GA.jar javassist-3.23.2-GA.jar *
Dom4J dom4j-2.1.1.jar dom4j-2.1.3.jar *
TXW2 Runtime - txw2-2.3.1.jar *
JAXB - jaxb-runtime-2.3.1.jar *
FastInfoset - FastInfoset-1.2.15.jar *
Extended StAX API - stax-ex-1.8.jar *
Istack Common Utility Code Runtime - istack-commons-runtime-3.0.7.jar *

[Step 4]

$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.5.1.RELEASE-sources.jar terasoluna-gfw-common-5.5.2.RELEASE-sources.jar * * *
  terasoluna-gfw-jodatime-5.5.1.RELEASE-sources.jar terasoluna-gfw-jodatime-5.5.2.RELEASE-sources.jar * * *
  terasoluna-gfw-security-web-5.5.1.RELEASE-sources.jar terasoluna-gfw-security-web-5.5.2.RELEASE-sources.jar * * *
  terasoluna-gfw-web-5.5.1.RELEASE-sources.jar terasoluna-gfw-web-5.5.2.RELEASE-sources.jar * * *
  terasoluna-gfw-web-jsp-5.5.1.RELEASE-sources.jar terasoluna-gfw-web-jsp-5.5.2.RELEASE-sources.jar * * *
Hibernate ORM hibernate-core-5.3.7.Final-sources.jar hibernate-core-5.3.20.Final-sources.jar *
  hibernate-entitymanager-5.3.7.Final-sources.jar hibernate-entitymanager-5.3.20.Final-sources.jar *
  javassist-3.23.1-GA-sources.jar javassist-3.23.2-GA-sources.jar *
  dom4j-2.1.1.jar dom4j-2.1.3.jar *
TXW2 Runtime - txw2-2.3.1-sources.jar *
JAXB - jaxb-runtime-2.3.1-sources.jar *
FastInfoset - FastInfoset-1.2.15-sources.jar *
Extended StAX API - stax-ex-1.8-sources.jar *
Istack Common Utility Code Runtime - istack-commons-runtime-3.0.7-sources.jar *

[Step 6]

置換文字列を使用して、参照ライブラリを更新してください。

  • $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.5.1.RELEASE terasoluna-gfw-common-5.5.2.RELEASE * * *
  terasoluna-gfw-jodatime-5.5.1.RELEASE terasoluna-gfw-jodatime-5.5.2.RELEASE * * *
  terasoluna-gfw-security-web-5.5.1.RELEASE terasoluna-gfw-security-web-5.5.2.RELEASE * * *
  terasoluna-gfw-web-5.5.1.RELEASE terasoluna-gfw-web-5.5.2.RELEASE * * *
  terasoluna-gfw-web-jsp-5.5.1.RELEASE terasoluna-gfw-web-jsp-5.5.2.RELEASE * * *
Hibernate ORM hibernate-core-5.3.7.Final hibernate-core-5.3.20.Final *
  hibernate-entitymanager-5.3.7.Final hibernate-entitymanager-5.3.20.Final *
  jandex-2.1.1.Final jandex-2.1.3.Final *
  javassist-3.23.1-GA javassist-3.23.2-GA *
  dom4j-2.1.1 dom4j-2.1.3 *

[Step 7]

Eclipse WTPプロジェクトの設定に参照ライブラリ(jarファイル以下)を追加してください。

  • $YOUR_ECLIPSE_WTP_PROJECT/.classpath
  • $YOUR_ECLIPSE_WTP_PROJECT/build.xml
.. tabularcolumns:: |p{0.30\linewidth}|p{0.55\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 追加対象jarファイルのプレフィックス Non MB3 JPA
Jaxb jaxb-runtime-2.3.1 *
TXW2 Runtime txw2-2.3.1 *
FastInfoset FastInfoset-1.2.15 *
Extended StAX API stax-ex-1.8 *
Istack Common Utility Code Runtime istack-commons-runtime-3.0.7 *

[修正方法]

.classpath

<!-- ### 以下のクラスパスエントリーの追加が必要 ### -->

<!-- omitted -->
<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/jaxb-runtime-2.3.1.jar"
    sourcepath="libsrc/jaxb-runtime-2.3.1-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/txw2-2.3.1.jar"
    sourcepath="libsrc/txw2-2.3.1-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/FastInfoset-1.2.15.jar"
    sourcepath="libsrc/FastInfoset-1.2.15-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/stax-ex-1.8.jar"
    sourcepath="libsrc/stax-ex-1.8-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/istack-commons-runtime-3.0.7.jar"
    sourcepath="libsrc/istack-commons-runtime-3.0.7-sources.jar" />

<!-- omitted -->

build.xml

<!-- ### 以下のクラスパスエントリーの追加が必要 ### -->

<path id="build.classpath">
    <!-- omitted -->
    <pathelement location="${lib.dir}/jaxb-runtime-2.3.1.jar"/>
    <pathelement location="${lib.dir}/txw2-2.3.1.jar"/>
    <pathelement location="${lib.dir}/FastInfoset-1.2.15.jar"/>
    <pathelement location="${lib.dir}/stax-ex-1.8.jar"/>
    <pathelement location="${lib.dir}/istack-commons-runtime-3.0.7.jar"/>
    <!-- omitted -->
</path>
⚠️ **GitHub.com Fallback** ⚠️