Spring Sessionをインメモリで利用する


昔は spring.session.store-type の選択肢に hash_map というものがあったようですが、現在は存在しません。(ちなみに none は Spring Session を利用しない、という意味になるようで、挙動が変わってしまいます( JSESSIONIDSESSIONID とか))

Read more ⟶

ControllerでUnauthorizedExceptionを投げると401でなく403になる


Http403ForbiddenEntryPoint がデフォルトで設定されているため、 ExceptionTranslationFilter において AuthenticationException のサブクラスは全て 403 になっている模様。

認証通った上でunauthorizedってことはforbiddenなんだよな?ということでしょうか。…この言い方だと全然ニュアンス伝わらないか。

Read more ⟶

Spring Boot 2.4.1->2.4.2アップグレードで発生した問題メモ


Spring Framework 5.3.3 で対応された

の影響で、 HttpServletRequest#getDispatcherType() メソッドが呼ばれるようになっています。

これにより、 HttpServletRequest をモック化して実行していたテストケースが(想定外のメソッド呼び出しで null を返すため)失敗するようになっていました。

Read more ⟶

Ubuntu 20.04 LTS にアップグレードして問題が発生した


さて2021年にもなったし、そろそろUbuntuアップグレードしても解消できない地雷は無くなっているだろう、と思い18.04からアップグレードを敢行しました。

Read more ⟶

Spring Boot 2.3.5 で MapStruct を利用しているプロジェクトのビルドが失敗した


調査したところSpring Bootの問題と言うよりは、Lombokのバージョンが 1.18.12 から 1.18.16 に上がったことによる非互換性の問題でした。

Lombokのchangelogに説明があります:

Read more ⟶

Spring SecurityのOAuth 2.0 Login でログインしても UserInfo Endpoint にアクセスしてくれない


Spring Security OAuth 2.0 Login を利用してログインしたのですが、通常ログイン後 UserInfo Endpoint へアクセスしてくれるはずなのにこの処理がスキップされてしまうような事象に出会いました。

Read more ⟶

WindowsでGradleが扱うリソースのファイルエンコーディング設定


問題

Spring Bootの自動テストで data.sql を作成しているのですが、 gradle check でテストを実行すると、失敗してしまう。

原因を調べたのですが、どうも日本語のカラムを比較しているところで失敗しているようで、出力を見る感じ data.sql のファイルエンコーディングが MS932 で扱われてしまっているようでした。

Read more ⟶

claimとscopeを追加して取得してみる


はじめに

Keycloak上で新しいclaimと、それを取得できる新しいscopeを定義し、Spring Securityを使って参照してみます。

KeycloakをIdPにしてSpring Security OAuth 2.0 Login/Client を試してみる で作成したコードをベースにしています。

Read more ⟶

Spring Security: OIDC の redirect_uri を変更する


はじめに

KeycloakをIdPにしてSpring Security OAuth 2.0 Login/Client を試してみる で作成したコードに対して、 カスタム redirect_uri の設定を行ってみます。

今回のコードはこちら:

変更手順

KeyCloak 登録情報の変更

前回のページ を参考に、 "Valid Redirect URIs" の値を今回変更するURL http://localhost:8080/my_redirect_uri に更新します。

Read more ⟶

DevToolsを組み込んでいると再起動してもsessionが引き継がれる


Spring Boot開発中、再起動するとsessionは消失すると思いこんでいたのですが、どうも引き継がれているように見えて混乱しました。

その後、調査してみると server.servlet.session.persistent プロパティで再起動時セッションを破棄するか保持するかを設定できることがわかりました。ただし、デフォルト値は false で、もちろんデフォルトからは変更していません(存在を知らなかったので)。

Read more ⟶

Ruby on Rails 6 を Centos6 や Centos7 で動かす


でそれぞれ、 CentOS6 + Rails6, CentOS7 + Rails6 の Vagrant Box を作成しました。ググってみたけれど、あまり無いものなんですね。

Read more ⟶

CentOS6にGCC10.2.0をインストールしたときのメモ


ビルド作業は次のページを参考にしました:

環境は こちら に記載したものです。

curl -L -O http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.xz
tar xf gcc-10.2.0.tar.xz
cd gcc-10.2.0
./contrib/download_prerequisites
./configure --enable-languages=c,c++ --prefix=/opt/gcc-10.2.0 --disable-bootstrap --disable-multilib
make -j 5
sudo make install

つづいて ldoconfig での登録ですが、そのまま行うとエラーが出たので こちら を参照にして事前に1つのファイルをリネームしておきました:

Read more ⟶

gccをビルドするのにどれくらい時間がかかるの?(10分かからなかった)


gccをビルドしようと思ったのですが、結構時間がかかるイメージがあって、先にどれくらいかかるのか調べたかったのだけれど検索しても見つかりませんでした。

Read more ⟶