=================================== ※配信停止方法や配信対象等については、このメールの末尾をご覧ください。 ─────────────────────────────────── ◆◇ NRI OSSソリューションマガジン 2024.1.24発行 Vol.205 ─────────────────────────────────── 目次 1.Spring Boot 3 で何が変わったか? 2.【更新10件】OSS最新アップデート 3.【TOP10】OSS紹介サイトアクセスランキング 4.【今月注目のバグ&セキュリティ情報】 ■□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□■ 1.Spring Boot 3 で何が変わったか? ■□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□■ いつもOpenStandiaのメールマガジンをご購読いただき、誠にありがとう ございます。 昨年、2023年の11月24日、Javaコミュニティを牽引するOSSフレームワークの 一つである Spring Bootのバージョン2.7が、コミュニティのサポート期間の 終了を迎えました。 このバージョンは「Spring Boot 2系」の最終リリースバージョンであるため、 「Spring Boot 3系」へのマイグレーションについて関心が高まっています。 そこで今回は、Spring Bootの2系から3系で何が変わったか、 また3系からどのような機能が新しく追加されたのかについて、 それぞれ主要なものをピックアップして紹介します。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ●Spring Bootとは? ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ Spring Bootとは、Spring Frameworkをベースとしたアプリケーションを、 必要最小限の設定を行うだけで簡単に開発できるようになるフレームワーク です。 ○アプリケーションを簡単に開発できる仕組み Spring Bootは、標準的な設定や依存ライブラリを定義した「スターター」と 呼ばれるライブラリの形で提供されており、この仕組みによって、 アプリケーションのビルドや構成に関する設定の大部分を省略することが できます。 ○Webアプリケーションサーバの準備は不要 TomcatやJetty、Undertowといった Webアプリケーションサーバは、通常 アプリケーションの実行環境上にインストールされセットアップを終えておく 必要があります。 しかしSpring Bootでは、それらのWebアプリケーションサーバの組み込み版 (Jar形式で配布されているもの)をサポートしており、アプリ内部にサーバ を組み込むことができます。 このSpring Bootの仕組みによって、ビルドされたアプリケーションのJarは 単独でWebアプリとして起動できる「実行可能Jar」となります。 Java環境上で動作する全てのリソースが単一のJarに含まれるという非常に シンプルな構成は、コンテナ環境で運用するアプリの開発と相性が良い点が 特徴です。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ●Spring Boot 3の主要なトピック ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ まずは、Spring Boot 3で登場した新しい機能、特徴について取り上げます。 ○GraalVMネイティブイメージのサポート 少ないメモリで高速に動作するJavaの実行環境「GraalVM」向けのアプリを ビルドする機能が取り込まれ、正式にサポートされました。 ○MicrometerとMicrometer Tracingによる可観測性(Observability)の向上 MicrometerとMicrometer Tracingによる可観測性を強力にサポートし様々な 機能の観測情報を、デフォルト構成と設定で取得できるようになりました。 ○HTTP通信を抽象化する「HTTPインターフェース」の追加 従来のRestTemplateやWebClientといったHTTP通信を行う具体的な機能を、 業務処理と簡単に分離できるインターフェースの仕組みが提供されました。 ○HTTP APIの詳細なエラー応答を実現する新しいRFCのサポート HTTP APIのエラーレスポンスに、エラー内容の詳細な情報を持たせるための 新しい仕様「RFC7807:Problem Details for HTTP APIs」を フレームワークとしてサポートしました。 ○Testcontainersによるコンテナテストの連携強化(v3.1~) コンテナに関係するテストをJUnit環境で実行できるOSSプロダクト 「Testcontainers」との連携を強化し、よりCI/CDサイクルを効率化 できるようになりました。 ○Javaの仮想スレッドのサポート(v3.2~) Java21で正式機能として採用された、仮想スレッド(JEP444)の仕組みを フレームワークとして正式にサポートしました。 ○新しいサーバとの通信のサポート いくつかのサーバとの通信を、フレームワークとして正式にサポートしました。 ・Apache Pulsar ・KafkaおよびRabbitMQとのSSL通信 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ●Spring Boot 2.7からの主要な変更点 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 次に、Spring Boot 2.7からの主要な変更点を紹介します。 ○前提となるJavaのベースバージョンが 17 にアップ 開発・実行のために、バージョン17以上のJava環境が必要になります。 ○JakartaEEのベースバージョンが 8 から 9 にアップ 前提となるJavaエンタープライズプラットフォーム(旧JavaEE)の仕様が、 JavaEE8と互換性のあったJakartaEE8からJakartaEE9にバージョンアップ しました。 これに伴い、JavaEEに仕様が含まれていたサーブレットなどの機能で、 クラスパッケージなどのAPIがJakartaに置き換わるなどの変更が入っています。 ○周辺プロジェクトのメジャーバージョンアップ ・Spring Security のサポートバージョンが 6 に上がりました。 ・Spring Batch のサポートバージョンが 5 に上がりました。 ○URLマッチングルールの改定 「/」で終わるURL宛てのリクエストを、自動的に「/」無しのURLへ変換する 機能がデフォルト無効になるなど、変更が入っています。 ○いくつかのレガシーなクラス・APIの廃止 詳細は公式ページのリリースノートを参照してください。 ▼Spring Boot 3.x Release Notes(外部サイト) - https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes - https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.1-Release-Notes - https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2-Release-Notes Spring Boot 2系から3系へマイグレーションする際には、前提となるJavaと JakartaEEのバージョンなどが、どちらもメジャーバージョンアップします。 そのため、コミュニティからも詳細な内容のマイグレーションガイドが 公開されています。 その中では、OpenRewriteといった有用なOSSのマイグレーションツールも 紹介されています。 ▼Spring Boot 3.0 Migration Guide(外部サイト) https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide また、OpenStandiaでは、Spring Bootのマイグレーションのご支援だけでなく、 コミュニティサポートが終了したバージョンのSpring Bootに対しても 技術サポートをご提供しています。 Spring Bootの採用をご検討中の方も、既にご利用しているシステムの マイグレーションをご検討の方も、お気軽に OpenStandiaサポートに ご相談ください。 今後ともOpenStandiaをよろしくお願いいたします。 OpenStandiaではOSSの技術サポートを提供しています。 現在のサポート対象OSSは下記OpenStandiaサイトから確認できます。 ◆OpenStandiaサポート対象OSS一覧 https://openstandia.jp/services/ ■□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.OSS紹介ページ 今月のアップデート(更新:10件) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□■ (更新) Angular (https://openstandia.jp/oss_info/angularjs/) Flask (https://openstandia.jp/oss_info/flask/) Jersey (https://openstandia.jp/oss_info/jersey/) Keras (https://openstandia.jp/oss_info/keras/) Kotlin (https://openstandia.jp/oss_info/kotlin/) Liferay (https://openstandia.jp/oss_info/liferay/) MyBatis (https://openstandia.jp/oss_info/mybatis/) Nginx (https://openstandia.jp/oss_info/nginx/) Ruby (https://openstandia.jp/oss_info/ruby/) TensorFlow (https://openstandia.jp/oss_info/tensorflow/) ■□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□■ 3.今月のOSS紹介サイト アクセスランキング TOP10 ■□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□■ オープンソース情報サイト「OpenStandia OSS紹介サイト」のアクセスTOP10を紹介 ↑ 1位 (2位) Keycloak (https://openstandia.jp/oss_info/keycloak/) ↓ 2位 (1位) Apache Tomcat (https://openstandia.jp/oss_info/tomcat/) ↑ 3位 (5位) PostgreSQL (https://openstandia.jp/oss_info/postgresql/) ↑ 4位 (6位) MySQL (https://openstandia.jp/oss_info/mysql/) ↓ 5位 (4位) PHP (https://openstandia.jp/oss_info/php/) ↓ 6位 (3位) Apache HTTP Server (https://openstandia.jp/oss_info/apache/) → 7位 (7位) OpenShift (https://openstandia.jp/oss_info/openshift/) ↑ 8位 (ランク外) Red Hat Enterprise Linux (https://openstandia.jp/oss_info/redhatenterpriselinux/) ↑ 9位 (ランク外) MinIO (https://openstandia.jp/oss_info/minio/) ↑ 10位 (ランク外) Ruby on Rails (https://openstandia.jp/oss_info/rubyonrails/) ※( )内は前月の順位 ◆OSS総合情報サイト「OpenStandia OSS紹介」サイトはこちら https://openstandia.jp/oss_info/ ■□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.今月注目のバグ&セキュリティ情報 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□■ 【.NET】 X509 証明書 - Azure における検証バイパス .NET は、さまざまな種類のアプリケーションを構築するために Microsoft によって作成されたオープンソースの開発者プラットフォームです。 Microsoft .NET Framework ベースのアプリケーションが X.509 チェーン構築 API を使用しているにもかかわらず、ロジックの欠陥により X.509 証明書が 完全に検証されない場合、セキュリティ機能バイパスの脆弱性が存在します。 攻撃者は、不正な署名を持つ任意の信頼できない証明書を提示し、 フレームワークのバグを誘発する可能性があります。 フレームワークは、X.509 チェーンの構築に失敗したことを正しく 報告しますが、失敗の理由コードは正しく返されません。 この理由コードを利用して独自のチェーン構築の信頼判断を行う アプリケーションは、このシナリオを誤ってチェーン構築が成功したもの として扱う可能性があります。 これにより、攻撃者がアプリの一般的な認証ロジックを破壊する可能性が あります。 詳細は下記関連情報の GitHub の Security Advisories のページをご参照 ください。 本脆弱性の影響を受ける .NET のバージョンは下記となります。 ・Red Hat Enterprise Linux 8 / CentOS 8 .NET6.0-0:6.0.126-1.el8_9 .NET7.0-0:7.0.115-1.el8_9 .NET8.0-0:8.0.101-1.el8_9 ・Red Hat Enterprise Linux 9 .NET6.0-0:6.0.126-1.el9_3 .NET7.0-0:7.0.115-1.el9_3 .NET8.0-0:8.0.101-1.el9_3 関連情報 ・Microsoft Security Response Center https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-0057 OpenStandia年間サポートサービスでは毎週、セキュリティアラートに 関する情報、及びバグFIXに関する情報を提供しています。 ◆OpenStandiaオープンソース年間サポートサービスのご紹介 https://openstandia.jp/services/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ NRI OpenStandiaのWebページからセミナー申込やお問い合わせ頂いたお客様、 NRIから委託されたOpenStandia営業と名刺交換をさせて頂いたお客様、 NRIが主催、共催、協賛するセミナー、イベントにご参加して頂いたお客様に 送付しております。 ◆商品・サービスに関するお問合せはこちら https://openstandia.jp/site/contact.html ※注意事項は以下のURLをご確認ください。 https://openstandia.jp/mm/mailmag.html ※配信先メールアドレス変更はこちら https://openstandia.jp/mm/mmchange.html ※配信停止はこちら https://openstandia.jp/mm/mmstop.html OSSソリューションマガジンに関するお問合せ:magazine-ossc-ext@nri.co.jp 発信元:株式会社野村総合研究所 https://openstandia.jp/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━