1.8. 更新履歴

更新日付 更新箇所 更新内容
2019-04-22 - 1.5.2 RELEASE版公開
  全般

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

記載内容の改善

記載内容の修正・追加

  • ViewResolverの定義について、Spring 4.0以前からの<bean>要素を使用した定義方法を削除し、Spring 4.1以降の<mvc:view-resolvers>要素を使用した定義方法のみ解説するよう変更
  • 利用するミドルウェアのバージョンを更新

Spring Framework 4.3.23よりXMLスキーマ処理が改善されたため、ブランクプロジェクトにおけるBean定義ファイルのXMLスキーマファイル(.xsd)参照をhttpからhttpsに変更

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

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

  • OWASP(Open Web Application Security Project)による観点の更新
  Macchinetta Server Framework (1.x)のスタック

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

  • Spring IO PlatformのバージョンをBrussels-SR17に更新
  • Spring Frameworkのバージョンを4.3.23に更新
  • Spring Securityのバージョンを4.2.12に更新
  • Spring Dataのバージョンを1.13.20に更新
  • Spring Security OAuthを2.0.17に更新
  • Hibernate Validatorのバージョンを5.3.6.Finalに更新
  • Jacksonのバージョンを2.8.11に更新
  • MyBatisのバージョンを3.4.6に更新
  • MyBatis-springのバージョンを1.3.2に更新

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

  • Spring Security 4.2.5で変更となったセキュリティヘッダの付与タイミングによる、リクエストパスのマッチングにおける注意事項の追加
  • Spring Security OAuth 2.0.17よりリダイレクトURIのホワイトリストチェックの仕様が変更されたことへの対応
  • Lombok 1.16.22より@Data@NoArgsConstructorを付与する順序によってコンパイルエラーが発生するようになったことへの対応

TERASOLUNA Server Framework for Java (5.x)の共通ライブラリの新機能追加

terasoluna-gfw-validator
  • バイト長チェック用Bean Validation制約アノテーション @ByteSize

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

terasoluna-gfw-common
  • SimpleReloadableI18nCodeListの追加
  • @ExistInCodeListNumber 型をサポートするよう改善
  • ReloadableCodeList のイミュータブル対応に伴う CodeListInterceptorの仕様変更
  Webアプリケーション向け開発プロジェクトの作成

記載内容の追加

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

記載内容の追加

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

記載内容の追加

  • Hibernate Validatorで提供されるTimeProviderを実装することで、基準日付の変更が可能である旨の説明を追加
  例外ハンドリング

記載内容の修正

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

構成見直し

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

記載内容の修正

  • SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの誤記を修正
  国際化

記載内容の追加

  • AcceptHeaderLocaleResolverLocaleChangeInterceptorの指定可能な設定についての説明を追加
  コードリスト

記載内容の修正

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

記載内容の追加

  • コードリストBeanをJSPから直接参照する方法を追加
  ファイルダウンロード

記載内容の追加

 

OWASP Top 10 2017対応に伴う修正

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

OWASP Top 10 2017対応に伴う修正

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

記載内容の追加

  • Spring Framework 4.3より追加された @RequestMappingの合成アノテーションの説明を追加

記述内容の修正

  データベースアクセス(MyBatis3編)

記載内容の追加

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

記載内容の修正

  • TERASOLUNA Server Framework for Java (5.x)の共通ライブラリが提供するTraceLoggingInterceptorのWARNログ出力に関する閾値の設定例を修正
  Beanマッピング(Dozer)

記載内容の削除

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

OWASP Top 10 2017対応に伴う修正

  • A8:2017に関連する、デシリアライズ時のWarningを追加

記載内容の修正・追加

  • JMSを利用する際のBean定義の記載場所を再整理
  • JNDIを使用しない場合のDynamicDestinationResolverのBean定義方法に関する記載を追加
  認証

OWASP Top 10 2017対応に伴う修正

  • A10:2017に関連する、ログイン認証時のログについてのTipを追加

記載内容の修正

  • PasswordEncoderインターフェースの実装クラス一覧を推奨するクラスのみ記載するように変更
  • 非推奨のPasswordEncoderについて、ShaPasswordEncoderからMessageDigestPasswordEncoderを使用する方法に記載を変更

記載内容の追加

  • SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの説明を追加
  CSRF対策

OWASP Top 10 2017対応に伴う修正

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

記載内容の追加

  • Spring Securityが提供するHeaderWriterFilterの仕様変更とDelegatingRequestMatcherHeaderWriterでのリクエストパスのマッチングにおけるバグについての注意事項を追加
  • Spring Securityがサポートするセキュリティヘッダの一覧にReferrer-Policyヘッダを追加
  OAuth

記載内容の修正・追加

  • CVE-2019-3778(オープンリダイレクト脆弱性)に関する注意喚起を追加
  • Spring Security OAuthのバージョン更新に伴いリダイレクトURI情報を保持するテーブルへの説明にWarningを追加
  • alias属性を用いたauthentication-managerの定義に関する実装例、説明の修正
  チュートリアル(Todoアプリケーション)

記載内容の修正・追加

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

記載内容の修正

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

記載内容の修正

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

記載内容の修正

  • SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの誤記を修正
  • ガイドライン修正に伴う、サンプルコードの最新化
  ボイラープレートコードの排除(Lombok)

記載内容の追加

  • Lombok 1.16.22における@Data@NoArgsConstructorを付与する順序についてのWarningを追加
2018-03-09 - 1.5.1 RELEASE版公開
  Macchinetta Server Framework (1.x)のスタック

CVE-2018-1199への対応のため、利用するOSSのバージョンを更新

  • Spring Frameworkのバージョンを4.3.14に更新
  • Spring Securityのバージョンを4.2.4に更新
  OAuth

記載内容の修正

  • 認可サーバのチェックトークンエンドポイントのURL設定が反映されない不具合へのWarningを削除
2017-12-22 - 1.5.0 RELEASE版公開
  全般

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

記載内容の改善

  Macchinetta Server Framework (1.x)のスタック

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

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

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

  ドメイン層の実装

記載内容の追加

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

記載内容の追加

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

ガイドラインのバグ修正

  • TERASOLUNA Server Framework for Java (5.x)の共通ライブラリのチェックルールの拡張方法の実装例を修正
  例外ハンドリング

記載内容の修正

  • TERASOLUNA Server Framework for Java (5.x)の共通ライブラリ(ExceptionLoggingFilter )の変更に伴う修正、及び既存の誤記の修正
  Tilesによる画面レイアウト

記載内容の修正

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

Spring Framework 4.3対応に伴う修正

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

記載内容の修正

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

記載内容の修正

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

記載内容の修正

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

Spring Framework 4.3対応に伴う修正

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

記載内容の修正

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

記載内容の修正、追加

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

構成見直し

  • How to useをグラントタイプ毎に説明する章構成に変更

記載内容の追加

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

記載内容の改善

  • サンプルコードの修正
  • フロー図およびその説明の改善
  単体テスト

新規追加

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