2023-04-28 |
- |
1.9.1 RELEASE版公開 |
|
全般 |
ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正
記載内容の改善
記載内容の修正・追加
- ログインジェクション対策としてlogbackのフォーマットパターンを修正
- Jakarta EE 8 ベースからJakarta EE 10 ベースへ切り替えることに伴う記述修正
- Java 1.8 ベースから Java 17 ベースへ切り替えることに伴う記述修正
- Dozerに関する記述を削除
- リクエストのハンドラメソッドに@RequestMapping合成アノテーションを使用するように修正
- Spring Securityのパス解析で使用されるMatcherがAntPathRequestMatcherとなるように修正
|
|
このドキュメントが示すこと |
記載内容の修正
|
|
Macchinetta Server Framework (1.x)のスタック |
記載内容の修正
利用するOSSのバージョンを更新
- Spring Bootを3.0.1に更新
- MyBatisを3.5.11に更新
- MyBatis Springを3.0.1に更新
- Jakarta Dependency Injectionを2.0.1に更新
- OpenPDFを1.3.30に更新
- Apache POIを5.2.3に更新
- Guavaを31.1-jreに更新
- commons-collectionsをcommons-collections4の4.4に更新
Spring Bootのバージョン更新に伴い利用するOSSのバージョンを更新
- Spring Frameworkを6.0.3に更新
- Spring Dataを3.0.0に更新
- Spring Securityを6.0.1に更新
- AspectJを1.9.19に更新
- Logbackを1.4.5に更新
- SLF4Jを2.0.6に更新
- Jacksonを2.14.1に更新
- Thymeleafを3.1.1に更新
- Hibernate Validatorを8.0.0.Final(Bean Validation 3.0)に更新
- Apache Commons Langを3.12.0に更新
- Apache Commons DBCPを2.9.0に更新
- Lombokを1.18.24に更新
Spring Bootのバージョン更新に伴い利用するOSSを変更
- Java MailをAngus Mailの1.0.0(Jakarta Mail 2.1)へ変更
- HttpClientをHttpClient5の5.1.4へ変更
- Apache Standard TaglibをJakarta Standard Tag Libraryの3.0.1へ変更
利用するOSSを追加
利用するOSSのサポートを終了
- Joda Timeをサポート対象外として削除
- Dozerをサポート対象外として削除
単体テストで利用するOSSのバージョンを更新
- DB Unitを2.7.3.に更新
- Mockitoを4.8.1に更新
- Spring Testを6.0.3に更新
記載内容の修正
- Logback1.2.8以降モジュール構成が変わったことに関するTipを追加
- 共通ライブラリが提供するJoda-Timeに関する機能を非推奨化
|
|
Spring MVCアーキテクチャ概要 |
記載内容の修正
- Spring MVCに関する説明を修正
- クラス階層の図を最新化
|
|
テンプレートエンジン(Thymeleaf) |
記載内容の修正
- Web APIベースの式ユーティリティオブジェクトが削除されたことに伴う修正
|
|
例外ハンドリング |
記載内容の修正
- NestedServletExceptionが削除されたことに伴い例外ハンドリングのパターンを修正
|
|
ページネーション |
記載内容の修正
- Web APIベースの式ユーティリティオブジェクトが削除されたことに伴う修正
|
|
ファイルアップロード |
記載内容の修正
- Commons FileUploadに関する記述を削除
|
|
ファイルダウンロード |
記載内容の修正
- AbstractPdfViewを継承したクラスの実装例で使用しているParagraphに渡す型を修正
|
|
RESTクライアント(HTTPクライアント) |
記載内容の修正
- AsyncRestTemplateの代替としてWebClientへ修正
- HttpClient5への移行に伴いSSL自己署名証明書の処理を修正
|
|
ロギング |
記載内容の修正
- Logbackの設定の読み込みについてのNoteを修正
|
|
日付操作(JSR-310 Date and Time API) |
記載内容の修正
|
|
システム時刻 |
記載内容の修正
- Joda Timeを削除しJSR-310ベースへ修正
|
|
E-mail送信(SMTP) |
記載内容の削除
|
|
JMS(Jakarta Messaging) |
記載内容の修正
- Apache ActiveMQ からApache ActiveMQ Artemisへ変更
|
|
Beanマッピング(MapStruct) |
新規追加
- Beanマッピングに使用するライブラリをDozerからMapStructに変更
|
|
Spring Security概要 |
記載内容の修正・追加
- Spring Security 5.7.0よりSecurityContextPersistenceFilterが非推奨となり、SecurityContextHolderFilterが推奨となったことへの対応
- 認可処理のフィルターがFilterSecurityInterceptorからAuthorizationFilterへ変更になったことに伴う修正
- AuthorizationFilterに関するWarningを追加
- Spring Securityのパスパターン解析がデフォルトでMVC形式となったことに対するTipを追加
|
|
認証 |
記載内容の修正
- Spring Security 5.7.0よりSecurityContextPersistenceFilterが非推奨となり、SecurityContextHolderFilterが推奨となったことへの対応
- PasswordEncoderのデフォルトコンストラクタ削除に伴う修正
|
|
認可 |
記載内容の修正・追加
- 認可処理のデフォルト値がdenyAllになったことに伴う修正
|
|
OAuth 2.0 |
記載内容の修正・追加
- OAuth(org.springframework.security.oauth)へのリンクを削除
- Spring SecurityのOAuth2のアーキテクチャのフローを修正
- クライアント認可処理のフローを修正
- How to Useの修正
- Proxy Serverを経由している場合についてのNoteを追加
|
|
チュートリアル(Todoアプリケーション REST編) |
記載内容の修正
- DHC REST ClientのキャプチャをTalend API Testerのものに修正
|
|
Spring Securityチュートリアル |
記載内容の修正
- systemExceptionResolverの除外設定からNestedServletExceptionを削除
|
|
ボイラープレートコードの排除(Lombok) |
記載内容の追加
|
|
Java SE 17を使用するための設定 |
記載内容の修正
- ページタイトルを「Java SE 8からJava SE 11までの主要な変更点」から「Java SE 17を使用するための設定」へ修正
|
|
STS4の設定手順 |
記載内容の追加
- プラグインが入れられない問題についてNoteを追加
- JSPの警告についてNoteを追加
|
|
OAuth(org.springframework.security.oauth) |
削除
- org.springframework.security.oauthがEOLしたことに伴い該当ページを削除
|
|
日付操作(Joda Time) |
移動
- Joda Timeをスタック対象外としたことに伴い該当ページをAppendixへ移動
|
|
SOAP Web Service(サーバ/クライアント) |
移動
- Spring Frameworkが提供していたJAX-WSの連携機能が削除されたことに伴い該当ページをAppendixへ移動
|
2022-03-30 |
- |
1.8.1 RELEASE版公開 |
|
全般 |
ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正
記載内容の改善
記載内容の修正・追加
- ログインジェクション対策としてlogbackのフォーマットパターンを修正
|
|
ガイドラインの観点別マッピング |
OWASP Top 10 を2017版から2021版へ変更
- OWASP(Open Web Application Security Project)による観点の更新
|
|
Macchinetta Server Framework (1.x)のスタック |
利用するOSSのバージョンを更新
- Spring Bootを2.6.1に更新
- MyBatisを3.5.7に更新
- Dozerを6.5.2に更新
- Apache POIを4.1.2に更新
Spring Boot のバージョン更新に伴い利用するOSSのバージョンを更新
- Spring Frameworkを5.3.13に更新
- Spring Dataを2.6.0に更新
- Spring Securityを5.6.0に更新
- Hibernateを5.6.1(JPA 2.2)に更新
- AspectJを1.9.7に更新
- SLF4Jを1.7.32に更新
- Jacksonを2.13.0に更新
- Thymeleafのバージョンを3.0.12に更新
- Hibernate Validatorを6.2.0(Bean Validation 2.0)に更新
- Apache Commons Langを3.12.0に更新
- Apache Commons DBCPを2.9.0に更新
- Lombokを1.18.22に更新
- Logbackを1.2.7に更新
単体テストで利用するOSSのバージョンを更新
- DB Unitを2.7.2に更新
- Mockitoを4.0.0に更新
- Spring Testを5.3.13に更新
利用するOSSのサポートを終了
- Spring Security標準OAuthのサポートに伴い、非推奨となっているSpring Security OAuthをサポート対象外として削除
記載内容の追加
|
|
開発プロジェクトのビルド |
記載内容の修正
- warファイルのコピーに使用するmaven-dependency-pluginのバージョンを更新し、使用するゴールをcopyに変更
|
|
RESTクライアント(HTTPクライアント) |
記載内容の修正
RequestFactoryBean 内のHttpClient がクローズされるように修正
|
|
OAuth 2.0 |
記載内容の修正
- Spring Security標準OAuthのサポートに伴い、説明内容を修正
|
|
代表的なセキュリティ要件の実装例 |
記載内容の修正
- Passayを1.6.1に更新したことに伴い、説明内容を修正
|
|
チュートリアル(Todoアプリケーション REST編) |
記載内容の追加
- REST ClientがDHC REST ClientからTalend API Testerに置き換わっていることについてのNoteを追加
|
|
セッションチュートリアル |
記載内容の追加
- JDK11の場合のビルド手順についてのNoteを追加
|
|
レイヤごとのテスト実装 |
記載内容の削除
- DB Unitの更新に伴い、Apache POIのダウングレードに関するWarningを削除
|
|
STS4の設定手順 |
新規追加
|
|
OAuth(org.springframework.security.oauth) |
新規追加
- Spring Security標準OAuthのサポートに伴い、Spring Security OAuthの説明をAppendixへ移動
|
2021-03-26 |
- |
1.8.0 RELEASE版公開 |
|
全般 |
Java EEからJakarta EEへ切り替えことに伴う記述修正
記載内容の修正・追加
|
|
Macchinetta Server Framework (1.x)のスタック |
利用するOSSのバージョンを更新
- Spring Bootを2.4.1に更新
- Spring Security OAuthを2.5.0に更新
- MyBatisを3.5.6に更新
- MyBatis Springを2.0.6に更新
- Joda Timeを2.10.9に更新
Spring Boot のバージョン更新に伴い利用するOSSのバージョンを更新
- Spring Frameworkを5.3.2に更新
- Spring Dataを2.4.2に更新
- Spring Securityを5.4.2に更新
- Hibernateを5.4.25(JPA 2.2)に更新
- AspectJを1.9.6に更新
- SLF4Jを1.7.30に更新
- Jacksonを2.11.3に更新
- Hibernate Validatorを6.1.6(Bean Validation 2.0)に更新
- Apache Commons Langを3.11に更新
- Apache Commons DBCPを2.8.0に更新
- Apache HttpClientを4.5.13に更新
- Lombokを1.18.16に更新
単体テストで利用するOSSのバージョンを更新
- Hamcrestを2.2に更新
- Mockitoを3.6.28に更新
- Spring Testを5.3.2に更新
利用するOSSのバージョンの更新による主な変更
- Spring Boot 2.3よりjoda-timeをバージョン管理しなくなったため、terasoluna-gfw-parentで管理するよう変更
- Spring Framework 5.3.0より
@PathVariable でバインドされる値に拡張子が含まれるように変更されたことへの対応
- Spring Framework 5.3.0より
HandlerInterceptor のパス指定におけるワイルドカードの使用方法が変更されたことへの対応
- Spring Framework 5.3.0より
HandlerInterceptorAdapter が非推奨となったことへの対応
- Spring Framework 5.3.0より
StringUtils#isEmpty が非推奨となったことへの対応
- Spring Framework 5.3.0より
JdbcTemplate のメソッドのうち一部が非推奨となったことへの対応
- Spring Security OAuth 2.5.0より
DefaultUserAuthenticationConverter#getAuthorities の可視性が変更されたことへの対応
- Hibernate Validator 6.1.0より日本語メッセージが提供されたことへの対応
- JUnit 4.13より
org.junit.Assert#assertThat が非推奨となったことへの対応
TERASOLUNA Server Framework for Java (5.x)の共通ライブラリの機能改善
- 共通ライブラリが用意する入力チェックルールの日本語メッセージを提供
@Compare がBean Validation 2.0に準拠
- Bootstrap v4以降に対応するため、
ResultMessages の標準メッセージタイプにprimary 、secondary 、light 、dark を追加
- 共通ライブラリの非推奨APIを削除
|
|
Webアプリケーション向け開発プロジェクトの作成 |
記載内容の修正
- Mavenセントラルリポジトリで公開されるOracle JDBC DriverのgroupIdが変更されたことへの対応
- オフライン環境でプロジェクト開発を続けるための事前作業について、一部手順に誤りがあったため修正
|
|
アプリケーション層の実装 |
Spring Framework 5.3.0対応に伴う修正
- Spring Framework 5.3.0より
@PathVariable でバインドされる値に拡張子が含まれるように変更されたことへの対応
- Spring Framework 5.3.0より
HandlerInterceptor のパス指定におけるワイルドカードの使用方法が変更されたことへの対応
- Spring Framework 5.3.0より
HandlerInterceptorAdapter が非推奨となったことへの対応
記載内容の追加
addAttribute 、addFlashAttribute で第一引数を省略した際、Conventions#getVariableName の仕様に基づき属性名が決まる説明を追加
|
|
開発プロジェクトのビルド |
記載内容の修正
- Tomcatへデプロイする際にコンテキストXMLファイルを配置するファイルパスを修正
|
|
入力チェック |
記載内容の修正
- Hibernate Validator 6.1.0より日本語メッセージが提供されたことへの対応
- 共通ライブラリが用意する入力チェックルールの日本語メッセージを提供
@Compare がBean Validation 2.0に準拠
- 相関項目チェックルールのコード例において、エラーメッセージを確認用フィールドに表示するように変更
- Bean Validationを利用した相関項目チェックルールのコード例をBean Validation 2.0に準拠するよう変更
|
|
メッセージ管理 |
記載内容の修正
ResultMessages の標準メッセージタイプに、primary 、secondary 、light 、dark を追加
ResultMessages の標準メッセージタイプから、非推奨のwarn を削除
- CSSライブラリBootstrapリンク先を最新化
|
|
排他制御 |
記載内容の修正
ObjectOptimisticLockingFailureException のFQCNの誤りを修正
|
|
システム時刻 |
記載内容の修正
- JUnit 4.13より
org.junit.Assert#assertThat が非推奨となったことへの対応
|
|
認証 |
記載内容の修正・追加
UserDetails 実装クラスのequals メソッドについての説明を追加
- ブランクプロジェクトにおいてSpring Securityのフォーム認証を使用しない場合の注意事項を追加
|
|
OAuth(org.springframework.security.oauth) |
記載内容の修正・追加
- Spring Security OAuth 2.5.0より
DefaultUserAuthenticationConverter#getAuthorities の可視性が変更されたことへの対応
- Spring Security OAuthが非推奨となったことへの対応
|
|
単体テスト概要 |
Spring Boot のバージョン更新に伴い利用するOSSのバージョンを更新
- Hamcrestを2.2に更新
- Mockitoを3.6.28に更新
- Spring Testを5.3.2に更新
|
|
レイヤごとのテスト実装 |
記載内容の修正
- Spring Framework 5.3.0より
JdbcTemplate のメソッドのうち一部が非推奨となったことへの対応
- JUnit 4.13より
org.junit.Assert#assertThat が非推奨となったことへの対応
|
|
単体テストで利用するOSSライブラリの使い方 |
記載内容の修正・追加
- Mockito 2より
org.mockito.Matchers が非推奨となったことへの対応
MockMultipartHttpServletRequestBuilder の主なメソッドの説明にpart メソッドを追加
MockMultipartHttpServletRequestBuilder において、リクエストを送信する際に”/”から始まらないパスを指定した場合のエラーの説明を追加
|
|
チュートリアル(Todoアプリケーション REST編) |
記載内容の修正
|
2021-01-07 |
- |
1.7.1 RELEASE版公開 |
|
アプリケーション層の実装 |
記載内容の修正
- プリプロセッシングの実装例において、本来プリプロセッシングが不要な実装を実装例としていたため修正
|
|
テンプレートエンジン(Thymeleaf) |
記載内容の修正
- SpEL評価時におけるnull-safetyの影響についての実装例において、本来プリプロセッシングが不要な実装でプリプロセッシングを使用していたため修正
|
|
セッション管理 |
記載内容の追加
- 「同一セッション内のリクエストの同期化」の適用範囲についての注意事項を追加
|
|
コードリスト |
記載内容の修正
- テンプレートHTMLの実装例において、本来プリプロセッシングが不要な実装でプリプロセッシングを使用していたため修正
|
|
Thymeleafにおける画面レイアウト |
記載内容の修正
- テンプレートHTMLの実装例において、本来プリプロセッシングが不要な実装でプリプロセッシングを使用していたため修正
|
2020-06-29 |
- |
1.7.0 RELEASE版公開 |
|
全般 |
ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正
記載内容の改善
記載内容の修正・追加
- 利用するミドルウェアのバージョンを更新
- Spring Framework 5.1.16よりXMLスキーマ処理が改善されたため、ブランクプロジェクトにおけるBean定義ファイルのXMLスキーマファイル(.xsd)参照を
http からhttps に変更
- Spring Framework 5.1よりログ出力の見直しが行われたため、ブランクプロジェクトにおいてマッピングされたハンドラメソッドのログを出力するよう変更
|
|
ガイドラインの観点別マッピング |
記載内容の追加
|
|
Macchinetta Server Framework (1.x)のスタック |
利用するOSSのバージョンを更新
- 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のバージョンを更新
- Spring Frameworkを5.2.3に更新
- Spring Dataを2.2.4に更新
- Spring Securityを5.2.1に更新
- AspectJを1.9.5に更新
- SLF4Jを1.7.30に更新
- Jacksonを2.10.2に更新
- thymeleaf-extras-java8time を3.0.4に更新
- 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のバージョンを更新
- Hamcrestを2.1に更新
- Mockitoを3.1.0に更新
- Spring Testを5.2.3に更新
利用するOSSのバージョンの更新による主な変更
- Spring Security 5.2で追加された
Argon2PasswordEncoder の記述を追加
- Spring Security 5.2で追加された
LogoutSuccessEvent およびLogoutSuccessEventPublishingLogoutHandler の記述を追加
- Spring Security 5.2で追加された
ClearSiteDataHeaderWriter およびHeaderWriterLogoutHandler の記述を追加
- Spring Security 5.2.1において、既存のセキュリティヘッダがある場合の挙動が変更されたこと(spring-projects/spring-security#6454)への対応
- Spring Data 2.2において、廃止予定であった非推奨APIが削除されたことへの対応
- Spring Boot 2.2.0からJavaMailがJakarta Mailにバージョンアップしたことへの対応
- Hamcrest 2.1からHamcrestのモジュールが統合されたため、記載するOSSライブラリを変更
利用するOSSのサポートを終了
- JDBC 4.2に対応していないLog4JDBCをサポート対象外として削除
TERASOLUNA Server Framework for Java (5.x)の共通ライブラリの機能改善
- 共通ライブラリが用意する入力チェックルールのデフォルトエラーメッセージを共通ライブラリで提供
Argon2PasswordEncoder のサポートに伴い、bcprov-jdk15on への依存関係を共通ライブラリで管理
記載内容の追加
- 共通ライブラリの構成要素に、TERASOLUNA Server Framework のバージョンについてのNoteを追加
|
|
アプリケーション層の実装 |
記載内容の追加
@RequestMapping の値(value属性)を省略した場合の動作についてのNoteを追加
- パス設計時の注意点についてのWarningを追加
|
|
入力チェック |
記載内容の追加
- 日付時刻の検証(
@Past 、@Future 、@PastOrPresent 、@FutureOrPresent )に適切な型を使用する必要があることについてのWarningを追加
記載内容の修正
- 共通ライブラリが用意する入力チェックルールのデフォルトエラーメッセージを共通ライブラリで提供するように変更したことに伴う記載内容の変更
|
|
ページネーション |
Spring Data 2.2対応に伴う修正
- Spring Data 2.2において、廃止予定であった非推奨APIが削除されたことに伴う実装例の修正
|
|
国際化 |
記載内容の修正
LocaleChangeInterceptor の仕様についてのNoteを修正
|
|
コードリスト |
記載内容の修正
@ExistInCodeList の入力チェックエラーメッセージについての記述を入力チェックに統合
|
|
RESTクライアント(HTTPクライアント) |
記載内容の修正
AsyncRestTemplate のスレッドプールをカスタマイズする方法の誤った説明を修正
|
|
データベースアクセス(共通編) |
記載内容の削除
- 共通ライブラリの変更に伴うlog4jdbcの記載の削除
|
|
Beanマッピング(Dozer) |
記載内容の削除
- Dozer 6.5.0よりJSR-310 Date and Time APIで使用できるはずのパターン文字が使用できない不具合が解消されたため、不具合を記述したWarningを削除
記載内容の追加
- javax.el標準APIの実装ライブラリが存在しないことにより発生する警告についての説明を追加
記載内容の修正
- Dozer 6.5.0より、Mavenを利用してJava SE 9以降でビルドする場合JAXBを利用するための設定が不要になったため、WarningをNoteに変更し説明を修正
|
|
E-mail送信(SMTP) |
Spring Boot 2.2.4対応に伴う修正
- JavaMailからJakarta Mailにバージョンアップしたことに伴い、説明内容を修正
記載内容の修正
- JavaMail 1.4.4よりマルチバイト文字を使用する際にメール本文終端に余計な文字が付与される不具合が修正された旨を追記
|
|
JMS(Jakarta Messaging) |
記載内容の修正・追加
- Spring Framework 5.0.0より、Spring JMSの動作にJMS 2.0のAPIが必要になったことによる記載の修正
- ActiveMQ Clientにおいて、JMS API 2.0で動作するために必要なライブラリ一覧を追加
- リスナークラスを格納するパッケージ配下をcomponent-scan対象とする必要がある旨の説明を追加
|
|
Spring Security概要 |
記載内容の修正
- Spring Security 5.0.1, 4.2.4, 4.1.5より、デフォルトで利用される
HttpFirewall インタフェースの実装クラスが変更されたことに対する記述の修正
|
|
認証 |
Spring Security 5.2.x対応に伴う修正
- Spring Security 5.2で追加された
Argon2PasswordEncoder の記述を追加
- Spring Security 5.2で追加された
LogoutSuccessEvent およびLogoutSuccessEventPublishingLogoutHandler の記述を追加
- Spring Security 5.2で追加された
ClearSiteDataHeaderWriter およびHeaderWriterLogoutHandler の記述を追加
TERASOLUNA Server Framework for Java (5.x)の共通ライブラリの機能改善
Argon2PasswordEncoder のサポートに伴い、bcprov-jdk15on への依存関係を共通ライブラリで管理
記載内容の追加
- PasswordEncoderに定義されているメソッドの一覧にSpring Security 5.1で追加された
upgradeEncoding を追加
記載内容の修正
@EventListener が処理する認証イベントの指定方法を改善
@EventListener クラスを格納するパッケージの明示および注意点の記載
- Spring Securityが提供するクラスをまとめた表の見直し
|
|
認可 |
記載内容の修正
- Spring Securityが提供するクラスをまとめた表の見直し
|
|
セッション管理 |
記載内容の修正
- Spring Security 5.0.1, 4.2.4, 4.1.5以降では、デフォルトの設定でURL RewritingによるセッションIDの連携を行えず、設定を変更した場合、脆弱性が発生する可能性がある旨の記述を追加
|
|
ブラウザのセキュリティ対策機能との連携 |
Spring Security 5.2.x対応に伴う修正
- Spring Security 5.2で追加された
ClearSiteDataHeaderWriter の記述を追加
- Spring Security 5.2で追加されたStrict-Transport-SecurityヘッダのpreloadディレクティブについてのNoteを追加
- spring-projects/spring-security#6454により解消されたWarning「個別に付与したセキュリティヘッダがSpring Securityにより上書き(追加)される問題」を削除
記載内容の追加
- Content Security Policyヘッダに関するIEがサポートしていないことについてのWarningを追加
- Content Security Policyヘッダで混在コンテンツをブロックする方法についてのNoteを追加
|
|
暗号化 |
記載内容の修正
- CVE-2020-5408により
Encryptors#queryableText メソッドを非推奨とする旨のNoteを追加し、コード例を削除
|
|
代表的なセキュリティ要件の実装例 |
記載内容の修正
@EventListener が処理する認証イベントの指定方法を改善
@EventListener クラスを格納するパッケージの変更
|
|
単体テスト概要 |
Spring Boot のバージョン更新に伴い利用するOSSのバージョンを更新
- Hamcrestを2.1に更新
- Mockitoを3.1.0に更新
- Spring Testを5.2.3に更新
記載内容の修正
- Hamcrest 2.1から
hamcrest-core , hamcrest-library がhamcrest に統合されたため、記載するOSSライブラリを変更
|
|
レイヤごとのテスト実装 |
記載内容の追加
- データ定義ファイルにExcel形式(.xlsx)のファイルを使用する場合のApache POIについてWarningを追加
|
|
Java SE 8からJava SE 11までの主要な変更点 |
記載内容の追加
- 「推移的に解決されるJava EE関連モジュールの競合」節の追加
|
2019-03-26 |
- |
1.6.1 RELEASE版公開 |
|
全般 |
Java SE 8および11のサポートに伴う修正
- サポート対象外となるJava SE 7を利用する際の記述を削除
- サポート対象となるJava SE 11を利用する際の記述を追加
ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正
記載内容の改善
記載内容の修正・追加
- ViewResolverの定義について、Spring 4.0以前からの
<bean> 要素を使用した定義方法を削除し、Spring 4.1以降の<mvc:view-resolvers> 要素を使用した定義方法のみ解説するよう変更
- 利用するミドルウェアのバージョンを更新
|
|
Thymeleaf対応 |
以下のThymeleaf対応章を追加
記載内容の修正・追加
- Decoupled Template Logicの適用方法についての記述を追加
- JavaScriptのテンプレート化についての記述を追加
- テンプレートHTMLのデバッグについての記述を追加
- フレームワークスタックに
thymeleaf-extras-java8time を追加
|
|
ガイドラインの観点別マッピング |
OWASP Top 10 を2013版から2017版へ変更
- OWASP(Open Web Application Security Project)による観点の更新
|
|
Macchinetta Server Framework (1.x)のスタック |
利用するOSSの管理方法の変更
- 利用するライブラリの管理にSpring Bootを利用するよう変更
利用するOSSのバージョンを更新
- Spring Frameworkのバージョンを5.1.4に更新
- Spring Securityのバージョンを5.1.3に更新
- Spring Dataのバージョンを2.1.4に更新
- thymeleafのバージョンを3.0.11に更新
- thymeleaf-spring4に代わりthymeleaf-spring5 3.0.11を追加
- thymeleaf-extras-springsecurity4に代わりthymeleaf-extras-springsecurity5 3.0.4を追加
- thymeleaf-extras-java8time 3.0.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に更新
- MyBatisのバージョンを3.5.0に更新
- MyBatis Springのバージョンを2.0.0に更新
- Dozerのバージョンを6.4.1に更新
- Apache POIを3.17に更新
- iTextが非サポートになったため、OpenPDF 1.0.5を追加
利用するOSSのバージョンの更新による主な変更
- Spring Framework 5.0.0よりJasperReportsが非サポートとなったことへの対応
- Spring Framework 5.0.3よりiTextが非サポートとなり、代わりにOpenPDFがサポートされたことへの対応
- Spring Framework 4.2から非推奨ととなっていた
AbstractExcelView がSpring Framework 5.0で削除されたことに伴う対応
- Spring Framework 5.0.0よりクエリ文字列に対するURLエンコーディングの仕様が変更されたことへの対応
- Spring Framework 5.0.0より指定サイズを超えるファイルのアップロードやマルチパートのリクエストが行われた際に発生する例外の仕様が変更されたことに伴う対応
- Spring Framework 5.0.0よりSpEL評価時におけるnull-safety機能が追加されたことへの対応
- Spring Security 5より非推奨の
PasswordEncoder のパッケージが廃止になったことへの対応
- Spring Security 5.0.2および5.1.2で変更となったセキュリティヘッダの付与タイミングによる、リクエストパスのマッチングにおける注意事項の追加
- Spring Security OAuth 2.2.2よりリダイレクトURIのホワイトリストチェックの仕様が変更されたことへの対応
- Thymeleaf 3.0.10よりイベントハンドラの式がJavaScriptテンプレートモードで解釈されるようになったことに対する対応
- Thymeleaf 3.0.10よりイベントハンドラで従来の記法におけるXSS対策が強化されたことに対する対応
|
|
Macchinetta Server Framework (1.x)のスタック |
TERASOLUNA Server Framework for Java (5.x)の共通ライブラリの新機能追加
terasoluna-gfw-validator
- バイト長チェック用Bean Validation制約アノテーション
@ByteSize
TERASOLUNA Server Framework for Java (5.x)の共通ライブラリの機能改善
terasoluna-gfw-common
SimpleI18nCodeList のロケール解決方法の改善
SimpleReloadableI18nCodeList の追加
@ExistInCodeList で Number 型をサポートするよう改善
ReloadableCodeList のイミュータブル対応に伴う CodeListInterceptor の仕様変更
@ExistInCodeList をBean Validation 2.0に準拠するよう仕様変更
terasoluna-gfw-codepoints
@ConsistOf をBean Validation 2.0に準拠するよう仕様変更
terasoluna-gfw-validator
@ByteMax 及び@ByteMin をBean Validation 2.0に準拠するよう仕様変更
|
|
アプリケーション層の実装 |
記載内容の追加
- Spring Framework 4.3より追加された
@RequestMapping の合成アノテーションの説明を追加
- Thymeleafのプリプロセッシングについて、解決された値により自動的に型が判定されることについての注意事項を追加
|
|
Webアプリケーション向け開発プロジェクトの作成 |
記載内容の追加
- 大量にコードリストを定義する場合のBean定義方法に関する記載を追加
|
|
テンプレートエンジン(Thymeleaf) |
Spring Framework 5.1.4対応に伴う修正
- SpEL評価時におけるnull-safetyの影響についての注意事項を追加
|
|
入力チェック |
Bean Validation 2.0(Hibernate Validator 6.0)対応に伴う修正
- 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 を削除
記載内容の修正
DefaultHandlerExceptionResolver がハンドリングする例外一覧にSpring Framework 4.2より追加されたorg.springframework.web.bind.MissingPathVariableException を追加
SystemExceptionResolver#preventResponseCaching とSpring SecurityのCache-Controlヘッダの併用についての注意を追加
|
|
ページネーション |
構成見直し
- Overviewを取得データの表示、ページネーションリンクの表示、ページネーション情報の表示の3点について説明するように変更
|
|
メッセージ管理 |
記載内容の修正
SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの誤記を修正
|
|
国際化 |
記載内容の追加
AcceptHeaderLocaleResolver とLocaleChangeInterceptor の指定可能な設定についての説明を追加
|
|
コードリスト |
記載内容の修正
- 独自カスタマイズしたコードリストのBean定義方法を、コンポーネントスキャンからBean定義ファイルによる定義に変更
|
|
ファイルアップロード |
Spring Framework 5.1.4対応に伴う修正
- 指定サイズを超えるファイルのアップロードやマルチパートのリクエストが行われた際に発生する例外の仕様が変更されたことに伴い、Noteを追加
|
|
ファイルダウンロード |
Spring Framework 5.1.4対応に伴う修正
- JasperReportsが非サポートとなったため、JasperReportsに言及している記載を修正
- iTextの代わりにOpenPDFがサポートされるようになった旨の説明を追加し、実装例を修正
- Spring Framework 4.2から非推奨ととなっていた
AbstractExcelView がSpring Framework 5.0で削除されたことに伴う対応
|
|
|
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 の合成アノテーションの説明を追加
記述内容の修正
- Dozerのカスタムコンバーターに関する記述を Beanマッピング(Dozer) に統合
|
|
RESTクライアント(HTTPクライアント) |
Spring Framework 5.1.4対応に伴う修正
AsyncRestTemplate がSpring Framework 5より非推奨となった旨と、代替となるクラスが非サポートであることの説明を追加
|
|
データベースアクセス(MyBatis3編) |
記載内容の追加
Pageable を利用した検索結果のソートについての説明を追加
- JSR-310 Date and Time APIを使う場合の設定の記事を削除し、依存ライブラリとして別途
mybatis-typehandlers-jsr310 を追加する必要はなくなった旨のNoteを追加
|
|
ロギング |
記載内容の修正
- TERASOLUNA Server Framework for Java (5.x)の共通ライブラリが提供する
TraceLoggingInterceptor のWARNログ出力に関する閾値の設定例を修正
|
|
Beanマッピング(Dozer) |
Dozer 6.4.1対応に伴う修正
- Dozer のバージョンアップ対応に伴い、ガイドラインに記載されているコード例を修正
- Dozer 6.2.0において、単方向マッピングの挙動が仕様と異なっていたバグが修正されたことの説明を追加
- Dozer 6.3.0よりJAXBがデフォルト利用されるようになったため、挙動の変更の注意点をWARNINGに追加
- Dozer 6.4.0より一部のJSR-310 Date and Time APIがサポートされた旨の説明を追加
記載内容の削除
- 現バージョン(Dozer5.5.0以降)ではCollection<T>を使用したBean間のマッピングも可能であるため、マッピングが失敗する旨を記述したTodoを削除
|
|
JMS(Jakarta Messaging) |
OWASP Top 10 2017対応に伴う修正
- A8:2017に関連する、デシリアライズ時のWarningを追加
記載内容の修正・追加
- JMSを利用する際のBean定義の記載場所を再整理
- JNDIを使用しない場合の
DynamicDestinationResolver のBean定義方法に関する記載を追加
|
|
認証 |
OWASP Top 10 2017対応に伴う修正
- A10:2017に関連する、ログイン認証時のログについてのTipを追加
記載内容の修正
- Spring Security 5より非推奨の
PasswordEncoder のパッケージが廃止されたことに伴い、MessageDigestPasswordEncoder を使用する方法に記載を修正
記載内容の改善
- ブランクプロジェクトで定義する
PasswordEncoder をBCryptPasswordEncoder からDelegatingPasswordEncoder に変更したことに伴う記載内容の変更
記載内容の追加
SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの説明を追加
|
|
認可 |
Spring Framework 5.1.4対応に伴う修正
- SpEL評価時におけるnull-safetyの影響についての注意事項を追加
記載内容の追加
- Spring Securityが提供する
AccessDeniedHandler の実装クラスの一覧にRequestMatcherDelegatingAccessDeniedHandler を追加
|
|
CSRF対策 |
OWASP Top 10 2017対応に伴う修正
- OWASP Top 10 2013版へのリンクをOWASP Cheat Sheetへのリンクへ変更
|
|
XSS対策 |
Thymeleaf 3.0.11対応に伴う修正
- イベントハンドラの式がJavaScriptテンプレートモードで解釈されるようになったことに対する記載内容及びコード例の変更
- イベントハンドラで従来の記法におけるXSS対策が強化され、NumberとBoolean以外を出力する式が使用できなくなったことに対するWarningを追加
|
|
ブラウザのセキュリティ対策機能との連携 |
Spring Security 5.1.3対応に伴う修正
- Spring Securityが提供する
HeaderWriterFilter の仕様変更とDelegatingRequestMatcherHeaderWriter でのリクエストパスのマッチングにおけるバグについての注意事項を追加
記載内容の追加
- Spring Securityがサポートするセキュリティヘッダの一覧にReferrer-Policyヘッダを追加
- Spring Securityがサポートするセキュリティヘッダの一覧にFeature-Policyヘッダを追加
|
|
OAuth(org.springframework.security.oauth) |
Spring Security OAuth 2.2.2対応に伴う修正
- Spring Security OAuthのバージョン更新に伴いリダイレクトURI情報を保持するテーブルへの説明にWarningを追加
記載内容の修正
alias 属性を用いたauthentication-manager の定義に関する実装例、説明の修正
記載内容の追加
|
|
チュートリアル(Todoアプリケーション) |
記載内容の修正・追加
- 一覧表示機能作成時に、登録機能の一部を作成していた部分を変更し、一覧表示機能の動作確認できるように、コード例を追加
- ガイドライン修正に伴う、サンプルコードの最新化
|
|
チュートリアル(Todoアプリケーション REST編) |
記載内容の修正
- spring-mvc-rest.xmlを作成する方法の説明を変更
- ガイドライン修正に伴う、サンプルコードの最新化
|
|
セッションチュートリアル |
記載内容の修正
|
|
Spring Securityチュートリアル |
記載内容の修正
SPRING_SECURITY_LAST_EXCEPTION が格納されるスコープの誤記を修正
- ガイドライン修正に伴う、サンプルコードの最新化
|
|
Java SE 8からJava SE 11までの主要な変更点 |
新規追加
- Java SE 8からJava SE 11までの主要な変更点を追加
|
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(org.springframework.security.oauth) |
記載内容の修正
- 認可サーバのチェックトークンエンドポイントのURL設定が反映されない不具合へのWarningを削除
|
2017-12-22 |
- |
1.5.0 RELEASE版公開 |