カジュアルな技術ノート

小難しい技術のお話をできるだけわかりやすく...

【Spring Security】Spring Security の csrf トークンの仕組み

Spring で開発した web アプリケーションの csrf 対策を行うときは Spring Security のトークン生成機能を利用することが多いと思います。 今回はこの csrf トークン生成の流れや仕組みを扱っていきます。 この記事で扱うこと Spring Security で生成した cs…

メールの事故から考えるメールライブラリとテンプレート

先日の jflute さん勉強会で MailFlute のソースコードリーディングをやりました。 今回はメールライブラリとテンプレートのお話です。 java でメール送信するときの手順を考えると、 Velocity などのテンプレートエンジンを使用してメール本文を完成 Java M…

O/R マッパー比較・入門編にて

今週の jflute さん勉強会で O/R マッパーの比較・入門編をやっていただきました。 新卒入社してそろそろ1年ですが DBFlute しか使ったことがない僕としては、他の O/R マッパーに関してはほぼ知識ゼロ状態。。 初めて聞く話が多かったですが、その一部を書…

【DBFlute】SQL はどう作られてるの?ConditionBean と Behavior の責務

ビズリーチで開いていただいてる隔週の jflute さん勉強会。 先日 DBFlute の ConditionBean のソースコードリーディングをやっていただきました。 ConditionBean のソースコードを読み進める中で、内部構造のこととかいくつか興味深い話があったのでまとめ…

Spring Security をわかりやすく(認証全体像編・その2)

何回かに渡って Spring Security の認証を扱っていきたいと思います。 Spring Security を触ったことのある人にまず聞いてみたいのですが、認証の実装に対してどんな印象を持っていますか? いままで何人かの人にこの質問をぶつけてみましたが、 とても直感…

Spring Security をわかりやすく(認証全体像編・その1)

何回かに渡って Spring Security の認証を扱っていきたいと思います。 Spring Security を触ったことのある人にまず聞いてみたいのですが、認証の実装に対してどんな印象を持っていますか? いままで何人かの人にこの質問をぶつけてみましたが、 とても直感…

Spring・コントローラーのメソッドで引数を受け取る仕組み

HTTP リクエストのパスに応じて、どの view を返すのか。。 ここの制御は Spring では、コントローラーを実装することで実現されています。 Spring を使用するなら必要不可欠の実装です。 でもコントローラーのメソッド実装において、いろんなものを引数で受…

th:field と th:object によるフォームバインディング機能(inputタグ・radio編)

th:field と th:object が提供する機能説明の続きです。 今回は inputタグの type="radio" をみていきましょう。 *th:field と th:object の提供機能はタグや属性値によって異なります。 サポートされているタグの一覧はこちら casual-tech-note.hatenablog…

th:field と th:object によるフォームバインディング機能(inputタグ・checkbox編)

th:field と th:object が提供する機能説明の続きです。 今回は inputタグの type="checkbox" をみていきましょう。 *th:field と th:object の提供機能はタグや属性値によって異なります。 サポートされているタグの一覧はこちら casual-tech-note.hatenab…

th:field と th:object によるフォームバインディング機能(inputタグ・password編)

th:field と th:object が提供する機能説明の続きです。 今回は input タグの type="password" をみていきましょう。 *th:field と th:object の提供機能はタグや属性値によって異なります。 サポートされているタグの一覧はこちら casual-tech-note.hatena…

th:field と th:object によるフォームバインディング機能(inputタグ・基本入力系編)

Spring + Thymeleaf でよく見かける th:field と th:object。 フォームで入力を受け取る際に、ほぼ必ずと言っていいほどセットで使用します。 しかし入門者にとっては、とりあえず書いておけばフォームで値を受け取ることができる構文に見えかねない気もしま…