1.9. 更新履歴

Caution

本バージョンの内容は既に古くなっています。最新のガイドラインはこちらからご参照ください。

更新日付 更新箇所 更新内容
2020-06-30 - 5.6.0 RELEASE版公開
  全般

ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正

記載内容の改善

記載内容の修正・追加

  • 利用するミドルウェアのバージョンを更新(管理ID#4417)
  • Spring Framework 5.1.16よりXMLスキーマ処理が改善されたため、ブランクプロジェクトにおけるBean定義ファイルのXMLスキーマファイル(.xsd)参照をhttpからhttpsに変更(管理ID#3920)
  • Spring Framework 5.1よりログ出力の見直しが行われたため、ブランクプロジェクトにおいてマッピングされたハンドラメソッドのログを出力するよう変更(管理ID#4346)
  ガイドラインの観点別マッピング

記載内容の追加

  • CVE-2020-5408を追加(管理ID#4450)
  TERASOLUNA Server Framework for Java (5.x)のスタック

利用するOSSのバージョンを更新(管理ID#4415)

  • Spring Bootを2.2.4に更新
  • Spring Security OAuthを2.4.0に更新
  • MyBatisを3.5.3に更新
  • MyBatis Springを2.0.3に更新
  • Apache Commons BeanUtilsを1.9.4に更新
  • Dozerを6.5.0に更新
  • Apache POIを4.1.1に更新

Spring Boot のバージョン更新に伴い利用するOSSのバージョンを更新(管理ID#4415)

  • Spring Frameworkを5.2.3に更新
  • Spring Dataを2.2.4に更新
  • Spring Securityを5.2.1に更新
  • Hibernateを5.4.10(JPA 2.2)に更新
  • AspectJを1.9.5に更新
  • SLF4Jを1.7.30に更新
  • Jacksonを2.10.2に更新
  • Hibernate Validatorを6.0.18(Bean Validation 2.0)に更新
  • Apache Commons Langを3.9に更新
  • Joda Timeを2.10.5に更新
  • Apache Commons DBCPを2.7.0に更新
  • Apache HttpClientを4.5.10に更新
  • Lombokを1.18.10に更新

単体テストで利用するOSSのバージョンを更新(管理ID#4415)

  • Hamcrestを2.1に更新(管理ID#4400)
  • Mockitoを3.1.0に更新
  • Spring Testを5.2.3に更新

利用するOSSのバージョンの更新による主な変更

  • Spring Security 5.2で追加されたArgon2PasswordEncoderの記述を追加(管理ID#4374)
  • Spring Security 5.2で追加されたLogoutSuccessEventおよびLogoutSuccessEventPublishingLogoutHandlerの記述を追加(管理ID#4372)
  • Spring Security 5.2で追加されたClearSiteDataHeaderWriterおよびHeaderWriterLogoutHandlerの記述を追加(管理ID#4369)
  • Spring Security 5.2.1において、既存のセキュリティヘッダがある場合の挙動が変更されたこと(spring-projects/spring-security#6454)への対応(管理ID#4364)
  • Spring Data 2.2において、廃止予定であった非推奨APIが削除されたことへの対応(管理ID#4354)
  • Spring Boot 2.2.0からJavaMailがJakarta Mailにバージョンアップしたことへの対応(管理ID#4452)
  • Hamcrest 2.1からHamcrestのモジュールが統合されたため、記載するOSSライブラリを変更(管理ID#4400)

利用するOSSのサポートを終了

  • JDBC 4.2に対応していないLog4JDBCをサポート対象外として削除(管理ID#4353)

共通ライブラリの機能改善

  • 共通ライブラリが用意する入力チェックルールのデフォルトエラーメッセージを共通ライブラリで提供(管理ID#4326)
  • <t:pagination>タグに、innerElementClass属性を追加(管理ID#4336)
  • Argon2PasswordEncoderのサポート(管理ID#4374)に伴い、bcprov-jdk15onへの依存関係を共通ライブラリで管理(管理ID#4381)
  アプリケーション層の実装

記載内容の追加

  • @RequestMappingの値(value属性)を省略した場合の動作についてのNoteを追加(管理ID#4355)
  • パス設計時の注意点についてのWarningを追加(管理ID#4350)
  入力チェック

記載内容の追加

  • 日付時刻の検証(@Past@Future@PastOrPresent@FutureOrPresent)に適切な型を使用する必要があることについてのWarningを追加(管理ID#4332)

記載内容の修正

  • 共通ライブラリが用意する入力チェックルールのデフォルトエラーメッセージを共通ライブラリで提供するように変更したことに伴う記載内容の変更(管理ID#4326)
  ページネーション

Spring Data 2.2対応に伴う修正

  • Spring Data 2.2において、廃止予定であった非推奨APIが削除されたことに伴う実装例の修正(管理ID#4354)

共通ライブラリの機能改善

  • <t:pagination>タグに、innerElementClass属性を追加(管理ID#4336)
  国際化

記載内容の修正

  • LocaleChangeInterceptorの仕様についてのNoteを修正(管理ID#4447)
  コードリスト

記載内容の修正

  • @ExistInCodeListの入力チェックエラーメッセージについての記述を入力チェックに統合(管理ID#4326)
  共通ライブラリが提供するJSP Tag Library と EL Functions

共通ライブラリのバグ改修に伴う修正

  • 共通ライブラリのバグ改修(terasoluna-gfw#846)に伴い、f:queryの仕様に関する説明を修正(管理ID#4329)
  RESTクライアント(HTTPクライアント)

記載内容の修正

  • AsyncRestTemplateのスレッドプールをカスタマイズする方法の誤った説明を修正(管理ID#3251)
  データベースアクセス(共通編)

記載内容の削除

  • 共通ライブラリの変更に伴うlog4jdbcの記載の削除(管理ID#4353)
  Beanマッピング(Dozer)

記載内容の削除

  • Dozer 6.5.0よりJSR-310 Date and Time APIで使用できるはずのパターン文字が使用できない不具合が解消されたため、不具合を記述したWarningを削除(管理ID#4347)

記載内容の追加

  • javax.el標準APIの実装ライブラリが存在しないことにより発生する警告についての説明を追加(管理ID#4410)

記載内容の修正

  • Dozer 6.5.0より、Mavenを利用してJava SE 9以降でビルドする場合JAXBを利用するための設定が不要になったため、WarningをNoteに変更し説明を修正(管理ID#4458)
  E-mail送信(SMTP)

Spring Boot 2.2.4対応に伴う修正

  • JavaMailからJakarta Mailにバージョンアップしたことに伴い、説明内容を修正(管理ID#4452)

記載内容の修正

  • JavaMail 1.4.4よりマルチバイト文字を使用する際にメール本文終端に余計な文字が付与される不具合が修正された旨を追記(管理ID#4452)
  JMS(Java Message Service)

記載内容の追加

  • ActiveMQ Clientにおいて、JMS API 2.0で動作するために必要なライブラリ一覧を追加(管理ID#4404)
  • リスナークラスを格納するパッケージ配下をcomponent-scan対象とする必要がある旨の説明を追加(管理ID#4404)
  Spring Security概要

記載内容の修正

  • Spring Security 5.0.1, 4.2.4, 4.1.5より、デフォルトで利用されるHttpFirewallインタフェースの実装クラスが変更されたことに対する記述の修正(管理ID#3814)
  認証

Spring Security 5.2.x対応に伴う修正

  • Spring Security 5.2で追加されたArgon2PasswordEncoderの記述を追加(管理ID#4374)
  • Spring Security 5.2で追加されたLogoutSuccessEventおよびLogoutSuccessEventPublishingLogoutHandlerの記述を追加(管理ID#4372)
  • Spring Security 5.2で追加されたClearSiteDataHeaderWriterおよびHeaderWriterLogoutHandlerの記述を追加(管理ID#4369)

共通ライブラリの機能改善

  • Argon2PasswordEncoderのサポート(管理ID#4374)に伴い、bcprov-jdk15onへの依存関係を共通ライブラリで管理(管理ID#4381)

記載内容の追加

  • PasswordEncoderに定義されているメソッドの一覧にSpring Security 5.1で追加されたupgradeEncodingを追加(管理ID#4370)

記載内容の修正

  • @EventListenerが処理する認証イベントの指定方法を改善(管理ID#4393)
  • @EventListenerクラスを格納するパッケージの明示および注意点の記載(管理ID#4387)
  • Spring Securityが提供するクラスをまとめた表の見直し(管理ID#4370)
  認可

記載内容の修正

  • Spring Securityが提供するクラスをまとめた表の見直し(管理ID#4370)
  セッション管理

記載内容の修正

  • Spring Security 5.0.1, 4.2.4, 4.1.5以降では、デフォルトの設定でURL RewritingによるセッションIDの連携を行えず、設定を変更した場合、脆弱性が発生する可能性がある旨の記述を追加(管理ID#3814)
  ブラウザのセキュリティ対策機能との連携

Spring Security 5.2.x対応に伴う修正

  • Spring Security 5.2で追加されたClearSiteDataHeaderWriterの記述を追加(管理ID#4369)
  • Spring Security 5.2で追加されたStrict-Transport-SecurityヘッダのpreloadディレクティブについてのNoteを追加(管理ID#4397)
  • spring-projects/spring-security#6454により解消されたWarning「個別に付与したセキュリティヘッダがSpring Securityにより上書き(追加)される問題」を削除(管理ID#4364)

記載内容の追加

  • Content Security Policyヘッダに関するIEがサポートしていないことについてのWarningを追加(管理ID#4352)
  • Content Security Policyヘッダで混在コンテンツをブロックする方法についてのNoteを追加(管理ID#4352)
  暗号化

記載内容の修正

  • CVE-2020-5408によりEncryptors#queryableTextメソッドを非推奨とする旨のNoteを追加し、コード例を削除(管理ID#4450)
  代表的なセキュリティ要件の実装例

記載内容の修正

  • @EventListenerが処理する認証イベントの指定方法を改善(管理ID#4393)
  • @EventListenerクラスを格納するパッケージの変更(管理ID#4387)
  単体テスト概要

Spring Boot のバージョン更新に伴い利用するOSSのバージョンを更新(管理ID#4415)

  • Hamcrestを2.1に更新(管理ID#4400)
  • Mockitoを3.1.0に更新
  • Spring Testを5.2.3に更新

記載内容の修正

  • Hamcrest 2.1からhamcrest-core, hamcrest-libraryhamcrestに統合されたため、記載するOSSライブラリを変更(管理ID#4400)
  レイヤごとのテスト実装

記載内容の追加

  • データ定義ファイルにExcel形式(.xlsx)のファイルを使用する場合のApache POIについてWarningを追加(管理ID#4408)
  Java SE 8からJava SE 11までの主要な変更点

記載内容の追加

  • 「推移的に解決されるJava EE関連モジュールの競合」節の追加(管理ID#4446)
2019-05-31 - 5.5.1 RELEASE版公開
  全般

Java SE 8および11のサポートに伴う修正

  • サポート対象外となるJava SE 7を利用する際の記述を削除(管理ID#3832)
  • サポート対象となるJava SE 11を利用する際の記述を追加(管理ID#3846)

ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正

記載内容の改善

記載内容の修正・追加

  • ViewResolverの定義について、Spring 4.0以前からの<bean>要素を使用した定義方法を削除し、Spring 4.1以降の<mvc:view-resolvers>要素を使用した定義方法のみ解説するよう変更(管理ID#3197)
  • 利用するミドルウェアのバージョンを更新(管理ID#3839)
  ガイドラインの観点別マッピング

OWASP Top 10 を2013版から2017版へ変更

  • OWASP(Open Web Application Security Project)による観点の更新(管理ID#3585)
  TERASOLUNA Server Framework for Java (5.x)のスタック

利用するOSSの管理方法の変更

  • 利用するライブラリの管理にSpring Bootを利用するよう変更(管理ID#3783)

利用するOSSのバージョンを更新

  • Spring Boot 2.1.2の適用(管理ID#3783)
  • Spring Frameworkのバージョンを5.1.4に更新
  • Spring Securityのバージョンを5.1.3に更新
  • Spring Dataのバージョンを2.1.4に更新
  • Hibernateのバージョンを5.3.7(JPA 2.2)に更新
  • Hibernate Validatorのバージョンを6.0.14(Bean Validation 2.0)に更新
  • Joda Timeのバージョンを2.10.1に更新
  • Jacksonのバージョンを2.9.8に更新
  • Apache HttpClientを4.5.6に更新
  • Lombokを1.18.4に更新
  • Spring Security OAuthを2.2.4に更新(管理ID#3783)
  • MyBatisのバージョンを3.5.0に更新(管理ID#3783)
  • MyBatis Springのバージョンを2.0.0に更新(管理ID#3783)
  • Dozerのバージョンを6.4.1に更新(管理ID#3580)
  • Apache POIを3.17に更新(管理ID#3783)
  • iTextが非サポートになったため、OpenPDF 1.0.5を追加(管理ID#3588)

利用するOSSのバージョンの更新による主な変更

  • Spring Framework 5.0.0よりJasperReportsが非サポートとなったことへの対応(管理ID#3588)
  • Spring Framework 5.0.3よりiTextが非サポートとなり、代わりにOpenPDFがサポートされたことへの対応(管理ID#3588)
  • Spring Framework 4.2から非推奨ととなっていたAbstractExcelViewがSpring Framework 5.0で削除されたことに伴う対応(管理ID#3724)
  • Spring Framework 5.0.0よりクエリ文字列に対するURLエンコーディングの仕様が変更されたことへの対応(管理ID#2986)
  • Spring Framework 5.0.0より指定サイズを超えるファイルのアップロードやマルチパートのリクエストが行われた際に発生する例外の仕様が変更されたことに伴う対応(管理ID#3805)
  • Spring Framework 5.0.0よりSpEL評価時におけるnull-safety機能が追加されたことへの対応(管理ID#3597)
  • Spring Framework 5.0.0より、JMS 2.0がサポートされたことに伴う対応(管理ID#3957)
  • Spring Security 5より非推奨のPasswordEncoderのパッケージが廃止になったことへの対応(管理ID#3564, #3567)
  • Spring Security 5.0.2および5.1.2で変更となったセキュリティヘッダの付与タイミングによる、リクエストパスのマッチングにおける注意事項の追加(管理ID#3601)
  • Spring Security OAuth 2.2.2よりリダイレクトURIのホワイトリストチェックの仕様が変更されたことへの対応(管理ID#3590)
  • Spring Data 2よりCrudRepositoryのシグネチャが変更されたことへの対応(管理ID#3659)
  • Hibernate 5.2.12より関連Entityのロードタイミングが改善されたことへの対応(管理ID#3557)
  TERASOLUNA Server Framework for Java (5.x)のスタック

共通ライブラリの新機能追加

terasoluna-gfw-validator
  • バイト長チェック用Bean Validation制約アノテーション @ByteSize (管理ID#3853)

共通ライブラリの機能改善

terasoluna-gfw-common
  • SimpleI18nCodeListのロケール解決方法の改善(管理ID#3658)
  • SimpleReloadableI18nCodeListの追加(管理ID#3862)
  • @ExistInCodeListNumber 型をサポートするよう改善(管理ID#2998)
  • ReloadableCodeList のイミュータブル対応に伴う CodeListInterceptorの仕様変更(管理ID#3861)
  • @ExistInCodeList をBean Validation 2.0に準拠するよう仕様変更(管理ID#3767)
terasoluna-gfw-codepoints
  • @ConsistOf をBean Validation 2.0に準拠するよう仕様変更(管理ID#3767)
terasoluna-gfw-validator
  • @ByteMax 及び@ByteMin をBean Validation 2.0に準拠するよう仕様変更(管理ID#3767)
  Webアプリケーション向け開発プロジェクトの作成

記載内容の追加

  • 大量にコードリストを定義する場合のBean定義方法に関する記載を追加(管理ID#689)
  アプリケーション層の実装

記載内容の追加

  • Spring Framework 4.3より追加された @RequestMappingの合成アノテーションの説明を追加(管理ID#3802)
  入力チェック

Bean Validation 2.0(Hibernate Validator 6.0)対応に伴う修正(管理ID#3767)

  • Bean Validation 2.0及びHibernate Validator 6.0では、コレクション内の各値に対して入力チェックできるようになった旨の説明を追加
  • Bean Validation 2.0では、一つのフィールドに同じアノテーションを複数指定できる旨の説明を追加
  • Bean Validation 2.0及びHibernate Validator 6.0で追加されたアノテーションに対する説明を追加
  • Hibernate Validator 6.0で非推奨となったアノテーションに対する説明を追加
  • Bean Validation 2.0で提供されるClockProviderを実装することで、基準日付の変更が可能である旨の説明を追加
  例外ハンドリング

Spring Framework 5.1.4対応に伴う修正

  • DefaultHandlerExceptionResolverがハンドリングする例外一覧からSpring Framework 5.0より廃止されたorg.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodExceptionを削除(管理ID#3737)

記載内容の修正

  • DefaultHandlerExceptionResolverがハンドリングする例外一覧にSpring Framework 4.2より追加されたorg.springframework.web.bind.MissingPathVariableExceptionを追加(管理ID#3737)
  • SystemExceptionResolver#preventResponseCachingとSpring SecurityのCache-Controlヘッダの併用についての注意を追加(管理ID#3601)
  ページネーション

構成見直し

  • Overviewを取得データの表示、ページネーションリンクの表示、ページネーション情報の表示の3点について説明するように変更(管理ID#3218)
  メッセージ管理

記載内容の修正

  • SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの誤記を修正(管理ID#2994)
  国際化

記載内容の追加

  • AcceptHeaderLocaleResolverLocaleChangeInterceptorの指定可能な設定についての説明を追加(管理ID#3658)
  コードリスト

記載内容の修正

  • 独自カスタマイズしたコードリストのBean定義方法を、コンポーネントスキャンからBean定義ファイルによる定義に変更(管理ID#3175)

記載内容の追加

  • コードリストBeanをJSPから直接参照する方法を追加(管理ID#3246)
  ファイルアップロード

Spring Framework 5.1.4対応に伴う修正

  • 指定サイズを超えるファイルのアップロードやマルチパートのリクエストが行われた際に発生する例外の仕様が変更されたことに伴い、Noteを追加(管理ID#3805)
  ファイルダウンロード

Spring Framework 5.1.4対応に伴う修正

  • JasperReportsが非サポートとなったため、JasperReportsに言及している記載を修正(管理ID#3610)
  • iTextの代わりにOpenPDFがサポートされるようになった旨の説明を追加し、実装例を修正(管理ID#3582)
  • Spring Framework 4.2から非推奨ととなっていたAbstractExcelViewがSpring Framework 5.0で削除されたことに伴う対応(管理ID#3724)
  共通ライブラリが提供するJSP Tag Library と EL Functions

Spring Framework 5.1.4対応に伴う修正

  • Spring Frameworkのクエリ文字列に対するURLエンコーディングの仕様変更に伴う共通ライブラリ(f:query(), f:u())の変更についてWarningを追加(管理ID#2986)
 

OWASP Top 10 2017対応に伴う修正

  • A8:2017に関連する、デシリアライズ時のWarningを追加(管理ID#3585)
  • TERASOLUNA Server Framework for Java (5.x)ではXXE対策済みのSpring MVCを使用しているため、 XXE対策についてのWarningをNoteへ変更し、spring-oxmによる対策方法の記述を削除(管理ID#3585)

記述内容の修正

  • 存在しないプロパティの記述(5.0.0リリース時の修正漏れ)を削除(管理ID#3315)
 

OWASP Top 10 2017対応に伴う修正

  • TERASOLUNA Server Framework for Java (5.x)ではXXE対策済みのSpring MVCを使用しているため、 XXE対策についてのWarningをNoteへ変更し、spring-oxmによる対策方法の記述を削除(管理ID#3585)

記載内容の追加

  • Spring Framework 4.3より追加された @RequestMappingの合成アノテーションの説明を追加(管理ID#3802)

記述内容の修正

  • 存在しないプロパティの記述(5.0.0リリース時の修正漏れ)を削除(管理ID#3315)
  • Dozerのカスタムコンバーターに関する記述をBeanマッピング(Dozer)に統合(管理ID#3804)
  RESTクライアント(HTTPクライアント)

Spring Framework 5.1.4対応に伴う修正

  • AsyncRestTemplateがSpring Framework 5より非推奨となった旨と、代替となるクラスが非サポートであることの説明を追加(管理ID#3799)
  データベースアクセス(MyBatis3編)

記載内容の追加

  • Pageable を利用した検索結果のソートについての説明を追加(管理ID#3681)
  • JSR-310 Date and Time APIを使う場合の設定の記事を削除し、依存ライブラリとして別途mybatis-typehandlers-jsr310 を追加する必要はなくなった旨のNoteを追加(管理ID#3376)
 

記載内容の追加

  • Spring Data 2よりCrudRepositoryのシグネチャが変更されたことへの対応(管理ID#3659)
  • Hibernate 5.2.12より、関連Entityのロードタイミングが改善された旨のNoteを追加(管理ID#3557)
  • EntityManagerの生存期間外にEntityを引き継がないよう注意喚起をWARNINGに追加(管理ID#3557)
  • Hibernate 5.2.10以前のバージョンに存在するQuery(JPQL)解釈のバグが修正された旨のNoteを追加(管理ID#3791)
  ロギング

記載内容の修正

  • 共通ライブラリが提供するTraceLoggingInterceptorのWARNログ出力に関する閾値の設定例を修正(管理ID#3728)
  Beanマッピング(Dozer)

Dozer 6.4.1対応に伴う修正

  • Dozer 5.5.1から6.4.1にアップデートしたことに伴うコード例の修正(管理ID#3580)
  • Dozer 6.2.0において、単方向マッピングの挙動が仕様と異なっていたバグが修正されたことの説明を追加(管理ID#3580)
  • Dozer 6.3.0よりJAXBがデフォルト利用されるようになったため、挙動の変更の注意点をWARNINGに追加(管理ID#3608)
  • Dozer 6.4.0より一部のJSR-310 Date and Time APIがサポートされた旨の説明を追加(管理ID#3577)

記載内容の削除

  • 現バージョン(Dozer5.5.0以降)ではCollection<T>を使用したBean間のマッピングも可能であるため、マッピングが失敗する旨を記述したTodoを削除(管理ID#3618)
  JMS(Java Message Service)

OWASP Top 10 2017対応に伴う修正

  • A8:2017に関連する、デシリアライズ時のWarningを追加(管理ID#3585)

記載内容の修正・追加

  • Spring Framework 5.0.0より、Spring JMSの動作にJMS 2.0のAPIが必要になったことによる記載の修正(管理ID#3957)
  • JMSを利用する際のBean定義の記載場所を再整理(管理ID#3383)
  • JNDIを使用しない場合のDynamicDestinationResolverのBean定義方法に関する記載を追加(管理ID#3383)
  認証

OWASP Top 10 2017対応に伴う修正

  • A10:2017に関連する、ログイン認証時のログについてのTipを追加(管理ID#3585)

記載内容の修正

  • Spring Security 5より非推奨のPasswordEncoderのパッケージが廃止されたことに伴い、MessageDigestPasswordEncoderを使用する方法に記載を修正(管理ID#3564)

記載内容の改善

  • ブランクプロジェクトで定義するPasswordEncoderBCryptPasswordEncoderからDelegatingPasswordEncoderに変更したことに伴う記載内容の変更(管理ID#3567)

記載内容の追加

  • SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの説明を追加(管理ID#2994)
  認可

Spring Framework 5.1.4対応に伴う修正

  • SpEL評価時におけるnull-safetyの影響についての注意事項を追加(管理ID#3597)

記載内容の追加

  • Spring Securityが提供するAccessDeniedHandlerの実装クラスの一覧にRequestMatcherDelegatingAccessDeniedHandlerを追加(管理ID#3815)
  CSRF対策

OWASP Top 10 2017対応に伴う修正

  • OWASP Top 10 2013版へのリンクをOWASP Cheat Sheetへのリンクへ変更(管理ID#3585)
  ブラウザのセキュリティ対策機能との連携

Spring Security 5.1.3対応に伴う修正

  • Spring Securityが提供するHeaderWriterFilterの仕様変更とDelegatingRequestMatcherHeaderWriterでのリクエストパスのマッチングにおけるバグについての注意事項を追加(管理ID#3601)

記載内容の追加

  • Spring Securityがサポートするセキュリティヘッダの一覧にReferrer-Policyヘッダを追加(管理ID#3675)
  • Spring Securityがサポートするセキュリティヘッダの一覧にFeature-Policyヘッダを追加(管理ID#3816)
  OAuth

Spring Security OAuth 2.2.2対応に伴う修正

  • Spring Security OAuthのバージョン更新に伴いリダイレクトURI情報を保持するテーブルへの説明にWarningを追加(管理ID#3590)

記載内容の修正

  • alias属性を用いたauthentication-managerの定義に関する実装例、説明の修正(管理ID#3386)

記載内容の追加

  • CVE-2019-3778(オープンリダイレクト脆弱性)に関する注意喚起を追加(管理ID#3931)
  チュートリアル(Todoアプリケーション)

記載内容の修正・追加

  • 一覧表示機能作成時に、登録機能の一部を作成していた部分を変更し、一覧表示機能の動作確認できるように、コード例を追加(管理ID#3233)
  • ガイドライン修正に伴う、サンプルコードの最新化
  チュートリアル(Todoアプリケーション REST編)

記載内容の修正

  • spring-mvc-rest.xmlを作成する方法の説明を変更(管理ID#3283)
  • ガイドライン修正に伴う、サンプルコードの最新化
  セッションチュートリアル

記載内容の修正

  • JSPのコードをTiles形式に修正(管理ID#3270)
  • ガイドライン修正に伴う、サンプルコードの最新化
  Spring Securityチュートリアル

記載内容の修正

  • SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの誤記を修正(管理ID#2994)
  • ガイドライン修正に伴う、サンプルコードの最新化
  Java SE 8からJava SE 11までの主要な変更点

新規追加

  • Java SE 8からJava SE 11までの主要な変更点を追加(管理ID#3846)
2018-03-16 - 5.4.1 RELEASE版公開
  全般

ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正

記載内容の改善

  TERASOLUNA Server Framework for Java (5.x)のスタック

利用するOSSのバージョンを更新(管理ID#3061)

  • Spring IO PlatformのバージョンをBrussels-SR5に更新
  • MyBatisのバージョンを3.4.5に更新

Spring IO Platformのバージョン更新に伴い利用するOSSのバージョンを更新

CVE-2018-1199への対応のため、利用するOSSのバージョンを更新(管理ID#3300)

  • Spring Frameworkのバージョンを4.3.14に更新
  • Spring Securityのバージョンを4.2.4に更新
  ドメイン層の実装

記載内容の追加

  • @Transactional アノテーションのtimeout 属性に関する記載を追加(管理ID#1776)
  入力チェック

記載内容の追加

  • @Compare アノテーションのoperator 属性に新たに追加されたNOT_EQUAL の説明を追加(管理ID#2842)
  • @Email アノテーションを使用する際の注意事項を追加(管理ID#2930)

ガイドラインのバグ修正

  • 共通ライブラリのチェックルールの拡張方法の実装例を修正(管理ID#2822)
  例外ハンドリング

記載内容の修正

  • 共通ライブラリ(ExceptionLoggingFilter )の変更に伴う修正、及び既存の誤記の修正(管理ID#2794)
  Tilesによる画面レイアウト

記載内容の修正

  • <definition> タグ(Tiles定義ファイル)のname 属性のマッチングに関する説明、及び関連する箇所の誤解を招く表現を修正(管理ID#2717)
  RESTクライアント(HTTPクライアント)

Spring Framework 4.3対応に伴う修正

  • Basic認証用のリクエストヘッダの設定に関する記載を変更(管理ID#2742)
  SOAP Web Service(サーバ/クライアント)

記載内容の修正

  • SOAP Web Serviceの実装に伴うインジェクションで使用するアノテーションを@Inject から@Autowired に変更(管理ID#2763)
  • Spring FrameworkのJAX-WS連携機能についての誤記修正と、SOAPサーバがJava EEサーバのJAW-WS実装上で動作することに伴なう注意事項の追記(管理ID#2770)
  JMS(Java Message Service)

記載内容の修正

  • 非同期送信のトランザクション管理はChainedTransactionManagerではなくDefaultMessageListenerContainerで行うよう記述を修正(管理ID#2814)
  認証

記載内容の修正

  • パスワードハッシュ化のためのクラス(Pbkdf2PasswordEncoder)の説明を追記し、それに伴いBCryptPasswordEncoderを推奨する記述を削除(管理ID#3011)
  認可

Spring Framework 4.3対応に伴う修正

  • ブランクプロジェクトからmvc:path-matching の定義を削除しSpring MVCのデフォルト設定を使用するよう変更したことに伴う記載内容の修正(管理ID#2941)

記載内容の修正

  • Spring Securityでパス変数を使用するアクセスポリシーの定義に関する記載内容を修正(管理ID#3090)
  XSS対策

記載内容の修正・追加

  • JavaScript Escapingのサンプルソースを修正(管理ID#2531)
  • document.write() を使用する際の注意事項を追加(管理ID#2531)
  OAuth

構成見直し

  • How to useをグラントタイプ毎に説明する章構成に変更(管理ID#2818)

記載内容の追加

  • Spring Security OAuthで発生する例外の一覧とハンドリング方法の追加(管理ID#2819)
  • Spring Security OAuthの拡張ポイントについての説明を追加(管理ID#2820)
  • リソースサーバに対するBasic認証設定方法の追加(管理ID#2891)
  • インプリシットにおける後処理(アクセストークンクリア)の追加(管理ID#2891)

記載内容の改善

  • サンプルコードの修正(管理ID#2891)
  • フロー図およびその説明の改善(管理ID#2891)
  • 認可サーバのチェックトークンエンドポイントのURL設定が反映されない不具合へのWarningを削除(管理ID#3263)
  単体テスト

新規追加

  • 単体テストを追加(管理ID#1817)
2017-11-10 - 5.3.1 RELEASE版公開
  全般 ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正
2017-03-17 - 5.3.0 RELEASE版公開
  全般

ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正

記載内容の改善

ブランクプロジェクト生成用のMavenアーキタイプのデプロイ先変更(Maven Centralに変更)に伴う起動オプションの修正(管理ID#2444)

  ガイドラインの観点別マッピング

記載内容の追加

  • セキュリティ対策に関するマッピングにCVEによる観点をまとめた表を追加(管理ID#2439)
  利用規約

記載内容の修正

  • 利用規約の修正(管理ID#2625)
  TERASOLUNA Server Framework for Java (5.x)のスタック

利用するOSSのバージョンを更新(管理ID#2441)

  • Spring IO PlatformのバージョンをAthens-SR2に更新
  • MyBatisのバージョンを3.4.2に更新
  • MyBatis-Springのバージョンを1.3.1に更新
  • mybatis-typehandlers-jsr310を1.0.2に更新

Spring IO Platformのバージョン更新に伴い利用するOSSのバージョンを更新

  ドメイン層の実装

記載内容の改善

  • シグネチャを制限するインタフェースおよび基底クラスの実装サンプルを修正(管理ID#2219)
  アプリケーション層の実装

記載内容の追加

  • 単純なview controllerを作成したい場合、<mvc:view-controller> を使用する様に追記(管理ID#2371)
  • Cookieの名前や値に使用できない文字が存在することの注意事項を追加(管理ID#2518)

Spring Framework 4.3対応に伴う修正

  • JSR-310 Date and Time APIのクラスに対して、@DateTimeFormat を使用する際の注意点を削除(管理ID#2505)
  入力チェック

記載内容の追加

  • コレクション内の値に対する入力チェック方法を追加(管理ID#407)

記載内容の改善

  • メッセージに入力チェック対象を含める方法の説明を追加(管理ID#2002)
  • @URLによる入力チェックのチェック内容に関する記述を修正(管理ID#2260)
  例外ハンドリング

Spring Framework 4.3対応に伴う修正

  • 致命的なエラーのハンドリング方法について追記(管理ID#2368)
  セッション管理

記載内容の追加

  • セッションスコープに格納しているオブジェクトを受け取る際にリクエストパラメータのバインドを防止する方法について追記(管理ID#1293)
  国際化

記載内容の追加

  • 国際化が適用されない場合の例とその対策方法を追加(管理ID#2427)
  ファイルアップロード

記載内容の追加

  • JBoss EAP 7.0使用時の文字化け回避方法に関する説明を追加(管理ID#2403)
  RESTful Web Service

Spring Framework 4.3対応に伴う修正

  • HEADとOPTIONSメソッドが暗黙的に用意される説明を追加(管理ID#1704)

記載内容の追加

  • HTTPステータスコードの説明句(reason-phrase)の出力仕様に関する説明を追加(管理ID#2518)
  RESTクライアント(HTTPクライアント)

Spring Framework 4.3対応に伴う修正

  • 非同期リクエストの共通処理の実装に関する説明を追加(管理ID#2369)
  データベースアクセス(MyBatis3編)

記載内容の変更、追加

  • JSR-310 Date and Time APIを使う場合の設定方法に関する記載を変更(管理ID#2365)

記載内容の追加

  • コミット時にエラーが発生した場合にロールバック処理を呼び出すための設定に関する記載を追加(管理ID#2375)

記載内容の修正

  • BLOBとCLOBを使用する場合の実装例を修正(管理ID#1775)
  • “Lazy Load”を実行するのタイミングを制御するオプションの説明を修正(管理ID#2364)
 

記載内容の追加

  • PostgreSQL使用時に”nowait”句が付加されない不具合に対する注意事項を追加(管理ID#2372)
 

記載内容の追加

  • PostgreSQL使用時に”nowait”句が付加されない不具合に対する注意事項を追加(管理ID#2372)
  E-mail送信(SMTP)

記載内容の追加

  • JavaMailで発生する問題とその回避方法を追加(管理ID#2190)
  認証

記載内容の追加

  • Remember Me認証に使用するチェックボックスのvalue属性値について追記(管理ID#785)
  • <mvc:view-controller> を使用する際の注意点を追記(管理ID#2371)

記載内容の修正

  • SecureRandomの使用についての記載を修正(管理ID#2177)
  認可

Spring Framework 4.3対応に伴う修正

  • AntPathMatchertrimTokensプロパティのデフォルト値が変更されたことに伴い、CVE-2016-5007の対応方法に関する説明及び注意点を修正(管理ID#2565)

記載内容の追加

  • 特定URLに対するアクセス制限に関するWarningを追記(管理ID#2399)
  • パス変数の使用方法の説明と使用時の注意点を追記(管理ID#2406)
  • AntPathRequestMatcherのパスマッチングの仕様変更に対する注意点を追記(管理ID#2428)
  ブラウザのセキュリティ対策機能との連携

Spring Security 4.1.4対応に伴う修正

  • Content Security Policy (CSP)”に関する記載を追加(管理ID#2400)
  • HTTP Public Key Pinning (HPKP)に関する記載を追加(管理ID#2401)
  OAuth

新規追加

  • OAuthを追加(管理ID#2145)
  チュートリアル(Todoアプリケーション)

記載内容の修正

  • JPAを利用する場合のEntityのコード例の修正(管理ID#2476)
  NEXUSによるMavenリポジトリの管理

Maven Centralへの移行に伴う修正

  • TERASOLUNA Server Framework for Java (5.x)のリポジトリに関する記述を削除(管理ID#2496)
2016-08-31 - 5.2.0 RELEASE版公開
  全般

ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正

記載内容の改善

章立てを全面見直し(管理ID#1683)

共通ライブラリのバージョンを5.2.0.RELEASEに更新(管理ID#2076)

記載内容の改善

  • 共通ライブラリのpomの依存性について追加(管理ID#1982)
  TERASOLUNA Server Framework for Java (5.x)のスタック

記載内容の追加

  • ブランクプロジェクトの共通ライブラリ標準の組込状況を追加(管理ID#1700)
  • mybatis-typehandlers-jsr310 、jackson-datatype-jsr310をOSSスタックに追加(管理ID#1966)
  • spring-jmsおよびその依存ライブラリをOSSスタックに追加(管理ID#1992)

利用するOSSのバージョン(Spring IO Platformのバージョン)を更新

  • Spring IO Platformのバージョンを2.0.6.RELEASEに更新
  • Spring Frameworkのバージョンを4.2.7.RELEASEに更新
  • Spring Securityのバージョンを4.0.4.RELEASEに更新

Spring IO Platformのバージョン更新に伴い利用するOSSのバージョンを更新

  ドメイン層の実装

記載内容の追加

  • MyBatis 3.3 + MyBatis-Spring 1.2 において、 @Transactinal の timeout 属性に指定した値は使用されない旨を追加(管理ID#1777)
  アプリケーション層の実装

記載内容の追加

  • HttpSessionをハンドラメソッドの引数として使用すべきでない旨を追加(管理ID#1313)
  • JSR-310 Date and Time APIを使用する際の注意点を記載(管理ID#1991)
  入力チェック

記載内容の改善

  • メッセージプロパティファイルをNative to Asciiせずに直接扱う方法を追加(管理ID#994)
  • cross-field validationについて追加(管理ID#1561)
  • @DateTimeFormat の説明を追加(管理ID#1873)
  • ValidationMessages.propertiesについての説明を修正(管理ID#1948)
  • Method Validationを利用した入力チェックの注意事項を追加(管理ID#1998)

記載内容の追加

  • OSコマンドインジェクションに関する記載を追加(管理ID#1957)
  例外ハンドリング

Spring Framework 4.2.7対応に伴う修正

  • HTTPレスポンスヘッダー出力に関する説明内容を修正(管理ID#1965)
  二重送信防止

記載内容の追加

  • @TransactionTokenCheckアノテーションのtype属性に新たに追加された TransactionTokenType.CHECKの仕様、利用方法に関する記載の追加(管理ID#2071)

「How To Extend プログラマティックにトランザクショントークンのライフサイクルを管理する方法について」を削除。

  • TransactionTokenContextが提供していたアプリケーション向けAPIを使用した場合、 TransactionTokenを正しい状態に維持できなくなるなど、フレームワーク内部の挙動に影響を及ぼすような作り込みができてしまうことから、 当該APIの非推奨化がなされた。非推奨化にあわせて該当機能の利用方法の記述を削除した。
  国際化

記載内容の改善

  • リクエストパラメータ(デフォルトのパラメータ名)の説明の位置を修正(管理ID#1354)
  ファイルアップロード

記載内容の追加

  • CVE-2016-3092(File Uploadの脆弱性)に関する注意喚起を追加(管理ID#1973)
  • ディレクトリトラバーサル攻撃に関する記載を追加(管理ID#2010)
  ヘルスチェック

新規追加

  • ヘルスチェックを追加(管理ID#1698)
  RESTful Web Service

記載内容の変更、追加

  • JSR-310 Date and Time API / Joda Timeを使う場合の設定の記述を変更(管理ID#1966)
  • JacksonをJava SE 7環境で使用する場合の注意点を記載(管理ID#1966)
  • JSONでJSR-310 Date and Time APIを使う場合の設定を記載(管理ID#1966)
  RESTクライアント(HTTPクライアント)

記載内容の改善

  • RestClientにおけるHTTP Proxyサーバの設定を追加(管理ID#1856)
  SOAP Web Service(サーバ/クライアント)

記載内容の追加

  • SOAPクライアント起動時にSOAPサーバに接続しないオプションを追加(管理ID#1871)
  • SOAPクライアントのenvプロジェクトに関する説明の修正(管理ID#1901)
  • SOAP Webサービス例外発生時のステータスコード取得方法について追加(管理ID#2007)
  データベースアクセス(MyBatis3編)

記載内容の追加

  • 暫定的なWARNログ出力回避方法を削除(管理ID#1292)
  • JSR-310 Date and Time APIをMybatis3.3で使用するための設定方法を記載(管理ID#1966)
  • MyBatisをJava SE 7環境で使用する場合の注意点を記載(管理ID#1966)
  排他制御

記載内容の追加

  • ExclusionControlにwarningメッセージを追加(管理ID#1694)
  ロギング

記載内容の追加

  • ID付きログメッセージを出力するための拡張方法を記載(管理ID#1928)
  文字列処理

記載内容の追加

  • terasoluna-gfw-stringをdependencyに追加する例を追加(管理ID#1699)
  • @Size アノテーションの説明にサロゲートペアについての注意を追加(管理ID#1874)
  • JIS漢字U+2014(EM DASH)のUCS(Unicode)文字対応について記載を追加(管理ID#1914)
  Beanマッピング(Dozer)

記載内容の追加

  • JSR-310 Date and Time APIを使用する際の注意点を記載(管理ID#1966)
  JMS(Java Message Service)

新規追加

  • JMSを追加(管理ID#1407)
  認証

Spring Security 4.0.4対応に伴う修正

  • Spring Security 4.0.4にて authentication-failure-url の仕様が改善されたことによるコード例の修正とNoteの削除(管理ID#1963)
  認可

記載内容の追加

  代表的なセキュリティ要件の実装例

記載内容の追加

  • 「セキュリティ観点での入力値チェック」を追加
  • 「監査ログ出力」を追加
  参考書籍

記載内容の追加

  • 「Spring徹底入門」を参考書籍として追加(管理ID#2043)
2016-02-24 - 5.1.0 RELEASE版公開
  全般

ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正

記載内容の改善

  はじめに

記載内容の追加

  • ガイドラインに記載している内容の動作検証環境に関する記載を追加
  TERASOLUNA Server Framework for Java (5.x)のスタック

利用するOSSのバージョン(Spring IO Platformのバージョン)を更新

  • Spring IO Platformのバージョンを2.0.1.RELEASEに更新
  • Spring Frameworkのバージョンを4.2.4.RELEASEに更新
  • Spring Securityのバージョンを4.0.3.RELEASEに更新

Spring IO Platformのバージョン更新に伴い利用するOSSのバージョンを更新

新規プロジェクト追加

  • terasoluna-gfw-stringterasoluna-gfw-codepointsterasoluna-gfw-validatorterasoluna-gfw-web-jspプロジェクトの説明を追加。

共通ライブラリの新機能追加

terasoluna-gfw-string
  • 半角全角変換
terasoluna-gfw-codepoints
  • コードポイントチェック
  • コードポイントチェック用Bean Validation制約アノテーション
terasoluna-gfw-validator
  • バイト長チェック用Bean Validation制約アノテーション
  • フィールド値比較相関チェック用Bean Validation制約アノテーション
  はじめてのSpring MVCアプリケーション

記述内容の改善

  • Spring Security 4 対応に伴うサンプルソースの修正(管理ID#1519)
  • AuthenticationPrincipalArgumentResolverのパッケージ変更
  チュートリアル(Todoアプリケーション)

Spring Security 4 対応に伴う修正

  • Spring Security 4 対応に伴うソースの修正(管理ID#1519)
  • AuthenticationPrincipalArgumentResolverのパッケージ変更
  • デフォルトでtrueになる仕様のため、サンプルソースから<use-expressions="true">を削除
  Webアプリケーション向け開発プロジェクトの作成

記述内容の改善

  • オフライン環境上でmvnコマンドを利用する方法を追加(管理ID#1197)
  アプリケーション層の実装

記述内容の改善

  • EL関数を用いたリクエストURL作成方法について追加(管理ID#632)
  データベースアクセス(共通編)

記載内容の追加

  • Log4jdbcProxyDataSourceのオーバヘッドに対する注意点を追加(管理ID#1471)
  データベースアクセス(MyBatis3編)

MyBatis 3.3 対応に伴う記載内容の追加

  • defaultFetchSizeの設定方法を追加(管理ID#965)
  • 遅延読み込み時のデフォルトが JAVASSISTに変更されている点を追加(管理ID#1384)
  • ResultHandlerにGenericsを付与したサンプルコードに修正(管理ID#1384)
  • 新規追加された@Flushアノテーションを利用したソース例、及び注意点を追加(管理ID#915)
  データベースアクセス(JPA編)

ガイドラインのバグ修正

  • Like条件を使用するユーティリティを適切に修正(管理ID#1464)
  • JPQLにおける真偽値の不適切な実装を修正(管理ID#1525)
  • ページネーションの不適切な実装を修正(管理ID#1463)
  • DateTimeProviderを実装したサンプルコードの不適切な実装を修正(管理ID#1327)
  • 共通Repositoryインタフェースの実装クラスのインスタンスを生成するためのFactoryクラスにおいて不適切な実装を修正(管理ID#1327)

記載内容の改善

  • hibernate.hbm2ddl.autoのデフォルト値を修正(管理ID#1282)
  入力チェック

記述内容の改善

  • MethodValidationに対する記述を追加(管理ID#708)
  ロギング

記述内容の改善

  • Logbackの設定にServiceLoaderの仕組みを利用した記述の追加(管理ID#1275)
  • Spring Security 4 対応に伴うサンプルソースの修正(管理ID#1519)
  • デフォルトでtrueになる仕様のため、サンプルソースから<use-expressions="true">を削除
  セッション管理

記述内容の改善

  • SpEL式を用いたセッションスコープ参照の記述を追加(管理ID#1306)
  国際化

記述内容の改善

  • JSPに適切にロケールを反映させるための記述を追加(管理ID#1439)
  • SessionLocalResolverdefaultLocaleの説明を修正(管理ID#686)
  コードリスト

記載内容の追加

  • JdbcCodeListにJdbcTemplateを指定するパターンを推奨とする記述を追加(管理ID#501)
  RESTful Web Service

記述内容の改善

  • Jackson2ObjectMapperFactoryBeanを利用したObjectMapper作成を追加(管理ID#1022)
  • REST APIアプリケーションのドメイン層の実装にMyBatis3を前提とした形に修正(管理ID#1323)
  RESTクライアント(HTTPクライアント)

新規追加

  • RESTクライアント(HTTPクライアント)を追加(管理ID#1307)
  SOAP Web Service(サーバ/クライアント)

新規追加

  • SOAP Web Service(サーバ/クライアント)を追加(管理ID#1340)
  ファイルアップロード

記述内容の改善

  • アップロード処理の基本フロー、及びその説明をSpringのMultipartFilterを用いた記述に修正(管理ID#193)
  • セキュリティ上の問題や、APサーバによって動作が異なる等の課題があるため、「クエリパラメータでCSRFトークンを送る方法」を削除。 ファイルアップロードの許容サイズを超過した場合、一部APサーバでCSRFトークンチェックが正しく行われない注意点を追加(管理ID#1602)
  ファイルダウンロード

Spring Framework 4.2対応に伴う記載内容の追加

  • xlsx形式を操作するAbstractXlsxViewの追加(管理ID#996)

記述内容の改善

  • iTextの仕様変更のため、com.lowagie:itext:4.2.1を利用したソース例をcom.lowagie:itext:2.1.7を利用する形に修正
  E-mail送信(SMTP)

新規追加

  • E-mail送信(SMTP)を追加(管理ID#1165)
  日付操作(JSR-310 Date and Time API)

新規追加

  • 日付操作(JSR-310 Date and Time API)を追加(管理ID#1450)
  日付操作(Joda Time)

記載内容の改善・追加

  • タイムゾーンを利用しない年月日を扱うサンプルコードのオブジェクトをLocalDateに修正(管理ID#1283)
  • Java8未満のバージョンで和暦を扱う方法を追加(管理ID#1450)
  文字列処理

新規追加

  • 文字列処理を追加(管理ID#1451)
  セキュリティ対策

構成見直し

  Spring Security概要

Spring Security 4 対応に伴う修正

  • 全記述の再編
  • spring-security-testの紹介
  • デフォルトでtrueになる仕様のため、サンプルソースから<use-expressions="true">を削除
  • RedirectAuthenticationHandler非推奨化に伴う説明の削除
  Spring Securityチュートリアル

Spring Security 4 対応に伴う修正

  • チュートリアルのソースをSpring Security 4 に対応した形に修正(管理ID#1519)
  認証

Spring Security 4 対応に伴う修正(管理ID#1519)

  • 全記述の再編
  • auto-config="true"の削除
  • 認証イベントリスナを@org.springframework.context.event.EventListenerに修正
  • AuthenticationPrincipalのパッケージを修正
  • デフォルトでプレフィックスが付与されるため、サンプルソースからROLE_プレフィックスの削除
  認可

Spring Security 4 対応に伴う修正(管理ID#1519)

  • 全記述の再編
  • デフォルトでプレフィックスが付与されるため、サンプルソースからROLE_プレフィックスの削除
  • デフォルトでtrueになる仕様のため、サンプルソースから<use-expressions="true">を削除
  • @PreAuthorizeの定義例追加
  CSRF対策

Spring Security 4 対応に伴う修正

  • 全記述の再編
  • CSRF無効化の設定を修正<sec:csrf disabled="true"/>
  • 記述内容の改善
  暗号化

新規追加

  • 暗号化ガイドラインの追加(管理ID#1106)
  代表的なセキュリティ要件の実装例

新規追加

  • 代表的なセキュリティ要件の実装例を追加(管理ID#1604)
  セッションチュートリアル

新規追加

  • セッションチュートリアルを追加(管理ID#1599)
  チュートリアル(Todoアプリケーション REST編)

Spring Security 4 対応に伴う修正

  • Spring Security 4 対応に伴うソースの修正(管理ID#1519)
  • CSRF無効化の設定を修正<sec:csrf disabled="true"/>
  • デフォルトでtrueになる仕様のため、サンプルソースから<use-expressions="true">を削除
2015-08-05 - 5.0.1 RELEASE版公開
  全般

ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正

記載内容の改善

アプリケーションサーバに関する記載内容の修正

  • Resinに関する記載を削除
  • リファレンスページへのリンクを最新化
  はじめに

記載内容の追加

  • ガイドラインに記載している内容の動作検証環境に関する記載を追加
  TERASOLUNA Server Framework for Java (5.x)のスタック

セキュリティ脆弱性対応に伴い利用するOSSのバージョン(Spring IO Platformのバージョン)を更新

  • Spring IO Platformのバージョンを1.1.3.RELEASEに更新
  • Spring Frameworkのバージョンを4.1.7.RELEASEに更新 (CVE-2015-3192)
  • JSTLのバージョンを1.2.5に更新 (CVE-2015-0254)

Spring IO Platformのバージョン更新に伴い利用するOSSのバージョンを更新

記載内容の改善(管理ID#1148)

  • terasoluna-gfw-recommended-dependenciesterasoluna-gfw-recommended-web-dependenciesterasoluna-gfw-parentプロジェクトの説明を追加。
  • プロジェクトの説明を修正。
  • プロジェクト間の依存関係を示す図を追加。
  Webアプリケーション向け開発プロジェクトの作成

記載内容の追加

  • warファイルのビルド方法を追加(管理ID#1146)
  データベースアクセス(共通編)

記載内容の追加

  • データソース切り替え機能の説明を追加(管理ID#1071)
  データベースアクセス(MyBatis3編)

ガイドラインのバグ修正

  • バッチ実行のタイミングに関する説明を修正(管理ID#903)
  ロギング

記載内容の改善

  • <logger>タグのadditivity属性に関する説明を追加(管理ID#977)
  セッション管理

記載内容の改善

  • セッションスコープのBeanの定義方法に関する説明を修正(管理ID#1082)
  二重送信防止

記載内容の追加

  • レスポンスをキャッシュしないように設定している時のトランザクショントークンチェックの動作を補足(管理ID#1260)
  コードリスト

記載内容の追加

  • コード名の表示方法を追加(管理ID#1109)
 

CVE-2015-3192(XMLの脆弱性)に関する注意喚起を追加

  • StAX(Streaming API for XML)を使用する際の注意事項を追加(管理ID#1211)
 

共通ライブラリのバグ改修に伴う修正

  • 共通ライブラリのバグ改修(terasoluna-gfw#297)に伴い、f:queryの仕様に関する説明を修正(管理ID#1244)
  認証

記載内容の改善

  • ExceptionMappingAuthenticationFailureHandlerの親クラスのプロパティの扱いに関する注意点を追加(管理ID#812)
  • AbstractAuthenticationProcessingFilterrequiresAuthenticationRequestMatcherプロパティの設定例を修正(管理ID#1110)
  認可

ガイドラインのバグ修正

  • <sec:authorize>タグ(JSPタグライブラリ)のaccess属性の設定例を修正(管理ID#1003)
  環境依存性の排除

記載内容の追加

  • Tomcat8使用時の外部クラスパス(Tomcat7のVirtualWebappLoaderの代替機能)の適用方法を追加(管理ID#1081)
2015-06-12 全般 5.0.0 RELEASE英語版公開
2015-03-06 RESTful Web Service

ガイドラインのバグ修正

  • 例外ハンドリング用のサンプルコード(NullPointerExceptionが発生するコードが含まれている問題)を修正(管理ID#918)
  チュートリアル(Todoアプリケーション REST編)

ガイドラインのバグ修正

  • 例外ハンドリングの処理でNullPointerExceptionが発生する問題を修正(管理ID#918)
2015-02-23 - 5.0.0 RELEASE版公開
  全般

ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正

記載内容の改善

新規追加

version 5.0.0対応に伴う更新

  • MyBatis2の説明を削除
  TERASOLUNA Server Framework for Java (5.x)のスタック

Spring IO Platform対応

  • 一部のライブラリを除き、推奨ライブラリの管理をSpring IO Platformに委譲する構成に変更した旨を追加。

OSSバージョンの更新

  はじめてのSpring MVCアプリケーション

version 5.0.0対応に伴う更新

  • Spring Framework 4.1の適用。
  • ドキュメント上の構成の見直し。
  アプリケーションのレイヤ化

英語翻訳のバグ修正

  • ドメイン層と他の層との関係に関する翻訳ミスを修正(管理ID#364)
  チュートリアル(Todoアプリケーション)

version 5.0.0対応に伴う更新

  • Spring Framework 4.1の適用。
  • インフラストラクチャ層としてMyBatis3をサポート。
  • ドキュメント上の構成の見直し。
  Webアプリケーション向け開発プロジェクトの作成

新規追加

  • マルチプロジェクト構成のプロジェクト作成方法を追加。
  ドメイン層の実装

Spring Framework 4.1対応に伴う修正

  • JTA 1.2の@Transactionalの扱いに関する記載を追加(管理ID#562)
  • JPA(Hibernate実装)使用時の@Transactional(readOnly = true)の扱い関する説明を修正。 SPR-8959(Spring Framework 4.1以降)の対応により、 JDBCドライバに対して「読み取り専用のトランザクション」として扱うように指示できるように改善された。

記載内容の追加

  • 「読み取り専用のトランザクション」が有効にならないケースに関する注意点を追加。 追加内容の詳細は、(管理ID#861)
  インフラストラクチャ層の実装

MyBatis3対応に伴う修正

  • RepositoryImplの実装としてMyBatis3の仕組みを利用する方法を追加。
  アプリケーション層の実装

Spring Framework 4.1対応に伴う修正

  • @ControllerAdviceに追加された属性(適用対象をControllerで絞り込むための属性)に関する説明を追加(管理ID#549)
  • <mvc:view-resolvers>に関する説明を追加(管理ID#609)
  データベースアクセス(共通編)

共通ライブラリのバグ改修に伴う修正

  • 共通ライブラリのバグ改修(terasoluna-gfw#78)に伴い、全角文字のワイルドカード文字(“” , “_” )の扱いに関する説明を追加(管理ID#712)

Spring Framework 4.1対応に伴う修正

  • JPA(Hibernate実装)の悲観ロックエラーがSpring FrameworkのPessimisticLockingFailureExceptionに変換されない問題に関する記載を削除。 この問題は、SPR-10815(Spring Framework 4.0以降)で解決済みである。

Apache Commons DBCP 2.0対応に伴う修正

  • Apache Commons DBCP 2.0用のコンポーネントを使用するようにサンプルコード及び説明を変更。
  データベースアクセス(MyBatis3編)

新規追加

  • O/R MapperとしてMyBatis3を使用してインフラストラクチャ層を実装する方法を追加。
  排他制御

ガイドラインのバグ修正

  • ロングトランザクションの楽観ロックのサンプルコード(レコードが取得できない時の処理)の修正(管理ID#450)

Spring Framework 4.1対応に伴う修正

  • JPA(Hibernate実装)の悲観ロックエラーがSpring FrameworkのPessimisticLockingFailureExceptionに変換されない問題に関する記載を削除。 この問題は、SPR-10815(Spring Framework 4.0以降)で解決済みである。

MyBatis3対応に伴う修正

  • MyBatis3使用時の排他制御の実装方法を追加。
  入力チェック

ガイドラインのバグ修正

  • @GroupSequenceの説明を修正(管理ID#296)

共通ライブラリのバグ改修に伴う修正

  • 共通ライブラリのバグ改修(terasoluna-gfw#256)に伴い、ValidationMessages.propertiesに関する注意点を追加(管理ID#766)

記載内容の追加

  • Spring Validatorを使用した相関項目チェック時に、Bean ValidationのGroup Validationの仕組みと連携する方法を追加。 追加内容の詳細は、(管理ID#320)

Bean Validation 1.1(Hibernate Validator 5.1)対応に伴う修正

  • @DecimalMin@DecimalMaxinclusive属性の説明を追加。
  • Expression Languageに関する記載を追加。
  • Bean Validation 1.1から非推奨になったAPIについて記載。
  • Hibernate Validator 5.1.xのValidationMessages.propertiesに関するバグ(HV-881)に関する記載と回避方法を追加。
  例外ハンドリング

記載内容の追加

  • 513バイトより小さいサイズのエラーレスポンスを返すとInternet Explorerで簡易エラーページが表示される可能性がある旨の説明を追加。 追加内容の詳細は、(管理ID#189)

Spring Framework 4.1対応に伴う修正

  • JPA(Hibernate実装)の悲観ロックエラーがSpring FrameworkのPessimisticLockingFailureExceptionに変換されない問題に関する記載を削除。 この問題は、SPR-10815(Spring Framework 4.0以降)で解決済みである。
  セッション管理

Spring Security 3.2対応に伴う修正

  • POSTリクエスト時にセッションタイムアウトではなくCSRFトークンエラーが発生する問題(SEC-2422)に関する記載を削除。 Spring Security 3.2の正式版ではセッションタイムアウトを検知できる仕組みが組み込まれており、問題が解消されている。
  メッセージ管理

共通ライブラリの変更内容の反映

  • 共通ライブラリの改善(terasoluna-gfw#24)に伴い、新たに追加したメッセージタイプ(warning)と非推奨にしたメッセージタイプ(warn)に関する説明を追加(管理ID#74)
  ページネーション

共通ライブラリの変更内容の反映

  • 共通ライブラリの改善(terasoluna-gfw#13)に伴い、active状態のページリンクの説明を変更(管理ID#699)
  • 共通ライブラリの改善(terasoluna-gfw#14)に伴い、disabled状態のページリンクの説明を変更(管理ID#700)

Spring Data Common 1.9対応に伴う修正

  • バージョンアップに伴い、API仕様が変更されているクラス(Pageインタフェースなど)に対する注意点を追加。
  コードリスト

共通ライブラリのバグ改修に伴う修正

  • 共通ライブラリのバグ改修(terasoluna-gfw#16)に伴い、ExistInCodeList のメッセージキーを変更とバージョンアップ時の注意点を追加(管理ID#638)
  • 共通ライブラリのバグ改修(terasoluna-gfw#256)に伴い、@ExistInCodeListのメッセージ定義に関する注意点を追加(管理ID#766)

共通ライブラリの変更内容の反映

  • 共通ライブラリの機能追加(terasoluna-gfw#25)に伴い、EnumCodeListクラスの使用方法を追加。
  Ajax

Spring Security 3.2対応に伴う修正

  • CSRF対策のサンプルコード(CSRF対策用の<meta>タグの生成方法)を変更。

Jackson 2.4対応に伴う修正

  • Jackson 2.4用のコンポーネントを使用するようにサンプルコード及び説明を変更。
  RESTful Web Service

記載内容の改善

  • Locationヘッダやハイパーメディアリンクに設定するURLを組み立てる方法を改善。 改善内容の詳細は、(管理ID#374)

Spring Framework 4.1対応に伴う修正

  • @RestControllerに関する説明を追加(管理ID#560)
  • ビルダースタイルのAPIを使用してResponseEntityを生成するようにサンプルコードを変更。

Jackson 2.4対応に伴う修正

  • Jackson 2.4用のコンポーネントを使用するようにサンプルコード及び説明を変更。

Spring Data Common 1.9対応に伴う修正

  • バージョンアップに伴い、API仕様が変更されているクラス(Pageインタフェースなど)に対する注意点を追加。
  ファイルアップロード

ガイドラインのバグ修正

  • CVE-2014-0050(File Uploadの脆弱性)が解決されたApache Commons FileUploadのバージョンを修正(管理ID#846)

記載内容の追加

  • 一部のアプリケーションサーバでServlet 3のファイルアップロード機能が文字化けする問題があるため、この事象の回避策としてApache Commons FileUploadを使用する方法を追加。 追加内容の詳細は、(管理ID#778)
  システム時刻

共通ライブラリの変更内容の反映

  • 共通ライブラリの改善(terasoluna-gfw#224)に伴い、ドキュメント内の構成とパッケージ名及びクラス名を変更(管理ID#701)
  Tilesによる画面レイアウト

Tiles 3.0対応に伴う修正

  • Tiles 3.0用のコンポーネントを使用するように設定例及び説明を変更。

Spring Framework 4.1対応に伴う修正

  • <mvc:view-resolvers><mvc:tiles><mvc:definitions>に関する説明を追加(管理ID#609)
  日付操作(Joda Time)

記載内容の追加

  • LocalDateTimeの使い方を追加。 追加内容の詳細は、(管理ID#584)

Joda Time 2.5対応に伴う修正

  • バージョンアップに伴いDateMidnightクラスが非推奨になったため、指定日の開始時刻(0:00:00.000)の取得方法を変更。
  Spring Security概要

Spring Security 3.2対応に伴う修正

  • Appendixに「セキュアなHTTPヘッダー付与の設定」を追加。
  Spring Securityチュートリアル

version 5.0.0対応に伴う更新

  • インフラストラクチャ層としてMyBatis3を使用するように変更。
  • Spring Framework 4.1対応の適用。
  • Spring Security 3.2対応の適用。
  • ドキュメント上の構成の見直し。
  認証

ガイドラインのバグ修正

  • <form-login><logout><session-management>タグの説明不備や説明不足の修正(管理ID#754)
  • AuthenticationFilterの拡張方法を示すサンプルコードの修正(セッション・フィクセーション攻撃対策やCSRF対策を有効にするための設定を追加)(管理ID#765)

Spring Security 3.2対応に伴う修正

  • CSRF対策を有効にしている際のログアウト方法に関する注意点を追加。
  • ControllerからUserDetails(認証ユーザ情報クラス)にアクセスする方法として、@AuthenticationPrincipalの説明を追加。
  • <sec:session-management>session-fixation-protection属性のパラメータとして、changeSessionIdの説明を追加。
  • セッションタイムアウトの検出方法と注意点を追加。
  • 同一ユーザの同時セッション数制御(Concurrent Session Control)を有効にするための設定方法を変更(<sec:concurrency-control>を使用するように変更)。
  • 同一ユーザの同時セッション数制御関連のクラスが非推奨になり別のクラスが提供されている旨を追加。
  CSRF対策

Spring Security 3.2対応に伴う修正

  • version 1.0.xの共通ライブラリに同封していたSpring Security 3.2.0(正式リリース前の暫定バージョン)のCSRF対策用コンポーネントに関する記載を削除。
  • CSRF対策を有効にするための設定方法をSpring Security 3.2の正式な作法(<sec:csrf>を使用する方法)に変更。
  • CSRF対策用のJSPタグライブラリ(<sec:csrfInput><sec:csrfMetaTags>)に関する記載を追加。
  • CSRF対策を有効にしている時のセッションタイムアウトの検出方法と注意点を追加。

Spring Framework 4.1対応に伴う修正

  • <form:form>を使用した際に、CSRFトークンがhiddenとして出力される条件に関する記載を変更。
  チュートリアル(Todoアプリケーション REST編)

記載内容の改善

version 5.0.0対応に伴う更新

  • Spring Framework 4.1対応の適用。
  • Spring Security 3.2対応の適用。
  • Jackson 2.4対応の適用。
  ブランクプロジェクトから新規プロジェクトの作成

記載内容の改善

  • マルチプロジェクト構成のプロジェクト作成方法をサポート。
  • シングルプロジェクト構成のプロジェクト作成方法を最新化。
  共通ライブラリが提供するJSP Tag Library と EL Functions

新規追加

  • 共通ライブラリから提供しているJSPタグライブラリとEL関数の説明を追加。
  ボイラープレートコードの排除(Lombok)

新規追加

  • Lombokを使用したボイラープレートコードの排除方法の説明を追加。
  英語版

以下の英語版を追加

2014-08-27 - 1.0.1 RELEASE版公開
  全般 ガイドラインのバグ(タイプミスや記述ミスなど)を修正
  日本語版

以下の日本語版を追加

  英語版

以下の英語版を追加

  TERASOLUNA Server Framework for Java (5.x)のスタック

バグ改修に伴い利用するOSSのバージョンを更新

  • GroupId「org.springframework」のバージョンを3.2.4.RELEASEから3.2.10.RELEASEに更新
  • GroupId「org.springframework.data」ArtifactId「spring-data-commons」のバージョンを1.6.1.RELEASEから1.6.4.RELEASEに更新
  • GroupId「org.springframework.data」ArtifactId「spring-data-jpa」のバージョンを1.4.1.RELEASEから1.4.3.RELEASEに更新
  • GroupId「org.aspectj」のバージョンを1.7.3から1.7.4に更新
  • GroupId「javax.transaction」ArtifactId「jta」を削除
  アプリケーション層の実装 CVE-2014-1904(<form:form>タグのaction属性のXSS脆弱性)に関する注意喚起を追加
 

日本語版

メッセージ管理

バグ改修に関する記載を追加

  • 共通ライブラリから提供している<t:messagesPanel>タグのバグ改修(terasoluna-gfw#10)
 

日本語版

ページネーション

バグ改修に関する記載を更新

 

日本語版

Ajax

XXE Injection対策に関する記載を更新
 

日本語版

ファイルアップロード

CVE-2014-0050(File Uploadの脆弱性)に関する注意喚起を追加

ガイドラインのバグを修正

  • MultipartFilterを設定した場合、SystemExceptionResolverを使用してMultipartExceptionをハンドリングする事が出来ないため、サーブレットコンテナのerror-page機能を使用してハンドリングする方法を追加(管理ID#59)
  日本語版

以下のプロジェクト作成方法をmvn archetype:generateから行うように変更

  日本語版

以下のMavenアーキタイプ作成方法を微修正

2013-12-17 日本語版 1.0.0 Public Review版公開