daisuzz.log

Kotiln

Spring Securityを使ってエンドポイントに応じて複数の認証方式を切り替える方法

Spring Securityを使ったAPIを実装していたときに、REST APIにはBASIC認証をかけて、画面にはフォーム認証をかける、ということがやりたくなったのでその方法を備忘録として書いておきます。 環境 Spring Boot 2.7 Kotlin 1.6.21 方法 /api/から始まるREST A…

Spring Securityを使ったモック認証処理を実装する

Spring Securityを使った認証処理を実装したアプリケーションにおいて、モックの認証情報を使って動作確認をする方法を書いていきます。 認証処理の実装と、認証対象の画面や機能の実装が並行して行われているときに、Spring Securityの仕組みを使いつつもモ…

Spring SecurityをComponent-basedな設定方法で設定してみる

背景 Spring Security without the WebSecurityConfigurerAdapter を見て、従来のSpring Securityの設定方法がSpring Security5.7から非推奨になることを知ったので代わりの設定方法を試してみます。 環境 Spring Boot 2.6.7 Kotlin 1.6.21 何が変わるのか S…

Kotlinでjava.io.Fileを使ってファイルを読み込むときに便利な拡張関数

Kotlinのファイル読み込みの方法はいくつかありますが、今日はjava.io.Fileを使ったファイル読み込みでKotlinが提供している便利な関数について書いていきたいと思います。 java.io.Fileの拡張関数 Kotlinでは、java.io.Fileの拡張関数として便利な関数がkot…

Kotlinを上手に書くためにEffective Kotlinを読む

最近、Effective Kotlinを購入しました。 Effective Kotlin by Marcin Moskala [Leanpub PDF/iPad/Kindle] 読んでいると、Kotlinの適切な書き方がわかりやすくまとめられていたので備忘録として書いていきます mutableを使う箇所を制限する mutableは状態管…

Kotlinのスコープ関数のユースケースをまとめてみる

Kotlinのスコープ関数について公式ドキュメントを参考に特徴とユースケースをまとめてみます。公式のドキュメントがとてもわかりやすくまとまっているので、詳細はそちらを参考にしてください。Kotlinのversionは1.3.21です。 let public inline fun <T, R> T.let(</t,>…

kotlinx-serializationに触れてみた

今回はkotlinx.serializationというライブラリを触ってみます。 github.com kotlinx.serialiationはリフレクションを利用せずにシリアライズ/デシリアライズを行うことができるライブラリで、JSONやCBORやProtobufをサポートしているようです。 今回は、公式…

Kotlinで名前付き引数とデフォルト引数を使ってテストデータを生成する

今回は、Kotlinでテスト用のdata classを生成する方法を書いていきます。 概要 builderパターンを使ってテストデータを生成できるが、Kotlinでは名前付き引数とデフォルト引数を使ってさらに簡単にテストデータを生成できる テストデータを生成する テスト用…

KotlinのCollections APIとSequence, Java8のStream APIの評価のタイミングについて

最近はkotlin-puzzlersというGitHubリポジトリの問題を見ながらKotlinを勉強しています。 今回は、kotlin-puzzlersの中で取り上げられていた問題の一つを紹介していきます。 問題 fun main(vararg args: String) { val x = listOf(1, 2, 3).filter { print("…

KotlinのStyle GuideをIntelliJに設定する

Kotlin 公式のStyle GuideをIntelliJに設定する方法が簡単だったので書いていきます。 環境 macOS High Sierra 10.13.5 IntelliJ IDEA ULTIMATE 2018.1 やりかた Preference -> Editor -> Code Style -> Kotlin を選択し、右上の「Set from…」と書いてある箇…