- 1. SpringBootでデータベースによるログイン認証とパスワードハッシュ化(暗号化)
- 2. [Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)のIAMポリシーを更新する
- 3. SpringBootのThymeleafでEntityのForEach例外起きた時の対応
- 4. [Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)を生成・削除する
- 5. JEP454 FFM APIの基本的な使い方
- 6. Javaで「Javaの予約語」の動作を確認してみた
- 7. Visual Studio Codeでカバレッジ付きでJUnitが実行できるようになった!!
- 8. [Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)のIAMポリシーを取得する
- 9. OracleデータベースにOracle Clientなしでリモート接続する方法3つ
- 10. Web 開発再入門#23 ― Windows サービス化
- 11. Web 開発再入門#19 ― セキュリティ対策(Not Found Page 処理)
- 12. Web 開発再入門#18 ― セキュリティ対策(レスポンス・ヘッダー処理)
- 13. Web 開発再入門#16 ― セッション処理
- 14. Web 開発再入門#15 ― ログ出力処理
- 15. Web 開発再入門#14 ― マルチロケール処理
- 16. Web 開発再入門#13 ― 設定ファイル読込み処理
- 17. Web 開発再入門#12 ― MyBatis による SQL アクセス処理
- 18. Web 開発再入門#11 ― モデル処理
- 19. Web 開発再入門#10 ― コントローラー処理(Web-API もどき)
- 20. [Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)を取得する
SpringBootでデータベースによるログイン認証とパスワードハッシュ化(暗号化)
# この記事はこれの続きです
https://qiita.com/waokitsune/items/bcb5ce85a912bc506bac
# 概要
前回まではユーザー台帳はハードコーディングしていました。
そこから…
* ユーザー台帳はデータベースに持たせる。
* データベースで保持するパスワードはハッシュ化(暗号化)。と変更します。
# データベース側
MySQLを使います。
『neko』というスキーマーに『neko_user』というテーブルがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/bcfc940f-4b8e-56c0-3ac9-a6311a2f3ce6.png)あらかじめユーザー情報はインサートされています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/d442cd35-abc4-2cf9-1a1e-a4ba3
[Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)のIAMポリシーを更新する
Cloud Storage API V2(Java)を使用して、
Cloud Storageの管理フォルダ(マネージドフォルダ)のIAMポリシーを更新する方法
についてご紹介します。**IAM**
Identity and Access Managementの略で
リソースへのアクセス制御を管理する機能のことです。
リソースに対し、どのユーザーがどうアクセスするか等の
ルールのことをIAMポリシーと呼びます。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[IAMポリシーを更新](#1-iamポリシーを更新)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポン
SpringBootのThymeleafでEntityのForEach例外起きた時の対応
:::note warn
根本の原因調査までしてないです。
参考情報として見て下さい。
:::# 現象
Entityは下記のようにlombokのDataを使ってgetterとsetterをコーディング不要にしていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/0b19d028-a1a4-6723-1702-3fc1144641d4.png)そのEntityをリストに詰めて、ThymeleafでForEachした時に例外になりました。
『idというフィールドは存在しませんよ』的な例外の文言でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/3e41d0cc-01cd-1584-75f1-01a9f0e75f34.png)# 対応
おそらくSTS4にlombokがインストールされていなかったのが原因のようでした。
コーディング中、『Ent
[Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)を生成・削除する
Cloud Storage API V2(Java)を使用して、
Cloud Storageの管理フォルダ(マネージドフォルダ)を生成・削除する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[管理フォルダを生成](#1-管理フォルダを生成)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[管理フォルダを削除](#2-管理フォルダを削除)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#23-レスポンスの内容)|## 1. 管理フォル
JEP454 FFM APIの基本的な使い方
本記事では、[JEP 454: Foreign Function & Memory API](https://openjdk.org/jeps/454)をJNIと比較しながら、Linux、Windowsでの基本的な使い方を紹介します。
# 概要
Foreign Function & Memory APIは頭文字をとってFFM APIと略されます。
FFM APIはJDK19から3度のプレビューを経てJDK22で正式導入されました。
FFM APIとしてJEPになったのはJDK17の[JEP 412: Foreign Function & Memory API (Incubator)](https://openjdk.org/jeps/412)からですが、それ以前は2つのIncubatorとして開発されていました。
– [JEP 370: Foreign-Memory Access API (Incubator)](https://openjdk.org/jeps/370)
Javaヒープ外へアクセスでき、java.nio.ByteBufferやsun.misc.Unsafeの
Javaで「Javaの予約語」の動作を確認してみた
# 概要
Javaで「Javaの予約語」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/const/index7.html
# 実装
以下のファイルを作成しました。
“`JSample7_1.java
class JSample7_1{
public static void main(String[] args){
int switch;
}
}
“`以下のコマンドを実行しました。
“`
$ javac JSample7_1.java
JSample7_1.java:3: エラー: 文ではありません
int switch;
^
JSample7_1.java:3: エラー: ‘;’がありません
int switch;
^
JSample7_1.java:3: エラー: ‘(‘がありません
int switch;
^
JSample7_1.java:5: エラー: 構文解析中にファイルの終わりに移りました
Visual Studio Codeでカバレッジ付きでJUnitが実行できるようになった!!
ついに・・・Visual Studio Codeでカバレッジ付きでJUnitが実行できるようになりました 😀 😀 😀
> **NOTE:**
>
> これまではMavenなどでJacocoのカバレッジレポートを出力し、出力したレポートをVSCodeのUI上に反映することはできましたが、これで直感的にカバレッジを確認することができるようになります!!
>
> https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters* https://github.com/microsoft/vscode-java-test/releases/tag/0.41.0
* https://github.com/microsoft/vscode-java-test/issues/387こんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117313/1
[Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)のIAMポリシーを取得する
Cloud Storage API V2(Java)を使用して、
Cloud Storageの管理フォルダ(マネージドフォルダ)のIAMポリシーを取得する方法
についてご紹介します。**IAM**
Identity and Access Managementの略で
リソースへのアクセス制御を管理する機能のことです。
リソースに対し、どのユーザーがどうアクセスするか等の
ルールのことをIAMポリシーと呼びます。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[IAMポリシーを取得](#1-iamポリシーを取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポン
OracleデータベースにOracle Clientなしでリモート接続する方法3つ
先日ローカル環境でOracleデータベースに入門したばかりの赤ん坊です。
Oracleデータベースにリモート接続するには「クライアントマシンにOracle Clientをインストールする必要がある」という説明が多かったので、Oracle Clientをインストールしなくても済む方法が無いか簡単に調べた。
# まとめ
**OracleデータベースにOracle Clientなしで接続する方法3つ**– JavaアプリケーションからはODBC Thinを使う
– .NETアプリケーションではDLL形式のODP.NETを使う
– A5:SQL Mk-2 では直接接続方式を使う結構普通にあった。
# Oracle Clientをインストールすると
クライアントマシン向けにのOracle Clientというソフトウェアをインストール・設定することで、別マシンのOracleデータベースにリモート接続できるようになる。Oracle Clientをインストールすると、サーバー側用ソフトウェアをインストールした時と同じように、**ORACLE_HOME**や**tnsnames.o
Web 開発再入門#23 ― Windows サービス化
# Web 開発再入門#23 ― Windows サービス化
## はじめに
ビルドして作成した “fmockup-0.0.1.jar” を Windows サービス化します。
Windows サービスとは、Windows の OS のバッグラウンドで実行するプログラムです。OS:Operating System
## ファイル・ディレクトリ構成
D:\\
├ Developments\\
│ └ Workspace\\
│ └ fmockup\\
│ └ build\\
│ └ libs\\
│ &n
Web 開発再入門#19 ― セキュリティ対策(Not Found Page 処理)
# Web 開発再入門#19 ― セキュリティ設定(Not Found Page 処理)
fmockup
## ★ 本ページは工事中 ★
## はじめに
SpringBoot のデフォルトでは、誤った URL をアクセスすると、いろいろな情報を返却してしまいます。ハッカーは、これらの情報を見て、Web アプリケーションの作りを想像して、攻撃を仕掛けてきます。
よって、最低限の情報しか返却しないように修正します。## フォルダー・ファイル構成
D:\\
└ Developments\\
└ Workspace\\
└ fmockup\\
├ build\\
&n
Web 開発再入門#18 ― セキュリティ対策(レスポンス・ヘッダー処理)
# Web 開発再入門#18 ― セキュリティ設定(レスポンス・ヘッダー処理)
fmockup
## ★ 本ページは工事中 ★
## はじめに
Web アプリケーションのサーバー・サイドを開発します。
レスポンス・ヘッダーに著名なパラメーターを設定しておきます。SpringBoot Security で設定するものを参考にしました。
これらにより、ハッカーがブラウザーの挙動を悪用するのを防止します。また、今回の Web アプリケーションは、SPA として HTML を返却しますので、ブラウザーのキャッシュを無効にしておきます。これにより、ブラウザーは、キャッシュを使用せずに、毎回、Web サーバーから最新の HTML を取得するようになるため、開発段階で頻繫に Vue の HTML を更新する状況において便利です。
SPA:Single Page Application
HTML:Hypr Text Markup Language## レスポンスヘッダーに設定するもの
1. 今回、Tomcat にて設定するもの。
“`:レスポンス・ヘッダー
Ca
Web 開発再入門#16 ― セッション処理
# Web 開発再入門#16 ― セッション処理
fmockup
## はじめに
Web アプリケーションのサーバー・サイドを開発します。
業務アプリケーションですので、一定時間が経過したら使用不可とする仕様としました。
Tomcat の Session を使用します。## フォルダー・ファイル構成
D:\\
└ Developments\\
└ Workspace\\
└ fmockup\\
├ build\\
├ sql\\
Web 開発再入門#15 ― ログ出力処理
# Web 開発再入門#15 ― ログ出力処理
fmockup
## はじめに
Web アプリケーションのサーバー・サイドを開発します。
アクセス・ログとアプリケーション・ログをファイルに書き出すようにします。
**アクセス・ログ:**
アカウントに関する操作(ログイン、ログアウト、アカウント追加・変更・削除)のログを出力します。
セキュリティを脅かす攻撃を受けているか否かの分析で使用します。**アプリケーション・ログ:**
各処理の開始と終了のログを出力します。
アプリケーションの動作に問題があった時の初期切り分けに使用します。## フォルダー・ファイル構成
D:\\
└ Developments\\
└ Workspace\\
└ fmockup\\
├
Web 開発再入門#14 ― マルチロケール処理
# Web 開発再入門#14 ― マルチロケール処理
fmockup
## はじめに
サーバーサイドにおけるマルチロケールの処理を実現します。
英日中(en、ja、zh_CN)に対応します。## フォルダー・ファイル構成
D:\\
└ Developments\\
└ Workspace\\
└ fmockup\\
├ build\\
├ sql\\
├ src
Web 開発再入門#13 ― 設定ファイル読込み処理
# Web 開発再入門#13 ― 設定ファイル読込み処理
fmockup
## はじめに
Web アプリケーションのサーバー・サイドを開発します。
Web アプリケーションの動作を設定します。サーバー・サイドのプログラムで、適時、この設定を読み込んでプログラムの動きを変えます。
これらの設定は、Windows サービス化において変更することもできます。## フォルダー・ファイル構成
D:\\
└ Developments\\
└ Workspace\\
└ fmockup\\
├ build\\
├ sql\\
Web 開発再入門#12 ― MyBatis による SQL アクセス処理
# Web 開発再入門#12 ― MyBatis による SQL アクセス処理
fmockup
## はじめに
Web アプリケーションのサーバー・サイドを開発します。
MyBatis を使用して、SQL アクセスを実現します。MyBatis は、SQL 文とオブジェクトのマッピングを実現するもので、SQL 文が書ける人なら、学習コストが低いように思います。
なお、Hobernate は使用しませんでした。Hibernate はテーブル構造とオブジェクトのマッピングを実現します。SQL 文を書かずにオブジェクトを操作することで、Hibernate 内部が自動的に SQL 文を発行します。学習コストが高そう(特に、SQL のジョインの実現の仕方に苦労しそう)と思います。いつかは、Hibernate も学習すべきと考えています。
## フォルダー・ファイル構成
D:\\
└ Developments\\
└ Workspace\\
Web 開発再入門#11 ― モデル処理
# Web 開発再入門#11 ― モデル処理
fmockup
## はじめに
Web アプリケーションのサーバー・サイドを開発します。
MVC の Model 部分となります。MVC:Model View Controller
## フォルダー・ファイル構成
D:\\
└ Developments\\
└ Workspace\\
└ fmockup\\
├ build\\
├ sql\\
&nb
Web 開発再入門#10 ― コントローラー処理(Web-API もどき)
# Web 開発再入門#10 ― コントローラー処理(Web-API もどき)
fmockup
## はじめに
Web アプリケーションのサーバー・サイドを開発します。
MVC の Controller 部分となります。MVC:Model View Controller
## フォルダー・ファイル構成
D:\\
└ Developments\\
└ Workspace\\
└ fmockup\\
├ build\\
├ sql\\
 
[Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)を取得する
Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットの管理フォルダ(マネージドフォルダ)を取得する
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[管理フォルダリストを取得](#1-管理フォルダリストを取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[管理フォルダを取得](#2-管理フォルダを取得)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|## 1.