HackToTech

Hack To Technology

2023-01-01から1年間の記事一覧

LocalVariableTableParameterNameDiscovererが削除されてAutowireに失敗するようになった話

github.com SpringBootを3.2.0に上げた際に、 同じ型のBeanを定義していて、名前による(Qualifierではない)Autowireが失敗するようになってしまったので、それの備忘録 とりあえず複数のBeanがマッチするところまでの話は以下の記事に書いてるので端折る www…

SpringBootでAutowireする際に複数のBeanがマッチした際の挙動をみたのでメモ

雰囲気で挙動を理解していたのをちゃんと見たのでメモ spring.pleiades.io @Nullable public Object doResolveDependency(DependencyDescriptor descriptor, @Nullable String beanName, @Nullable Set<String> autowiredBeanNames, @Nullable TypeConverter typeCon</string>…

@Configurationで@Beanを宣言した際に誰がどう登録しているのかを見てたのでメモ

詳しく書いてあるところが見当たらなかったので単にコードを追った 完全に個人的なメモ tl;dr 最終的に DefaultSingletonBeanRegistry で持ってそう spring.pleiades.io バージョン Spring Boot 3.1.5 Spring Framework 6.0.13 コード data class Example(va…

PGAuditのログを減らしたくてバージョンごとの挙動の違いを見てたのでメモ

github.com PGAuditのissueとcommitを眺めていて、 個人的に悩みだった下記の問題が解決してそうだったのでバージョンごとの違いを確認する INSERT時の外部キーの監査ログがWRITEとして出てしまう問題 正直あまり意味のあるログではないので、出来る限り取り…

SpringBoot + KotlinでListの要素にConstraintsをかけたかった話

tl;dr コンパイラオプションに -Xemit-jvm-type-annotationsを指定する必要がある あとの文章は個人的なメモ リストの要素にConstraintsをかけたかったが、 なんか一見正しく見えるのに正しく動かなかった package com.example.exampleboot3 import org.hibe…

-Xmsと-Xmxを指定しても必ずしもすぐに物理メモリ上で確保されるわけではないという話

最初から確保されるものだと思い込んでいたら、 そういうわけではなかったので自分用に備忘録 理由はStackOverflowで解説されているので、それを読むのが良い stackoverflow.com どうやらAlwaysPreTouchを指定すると(その分起動は遅くなるが)、 JVMの初期化…

dependabotのgradleにKotlin DSLでpluginsとdependenciesで同じバージョンを指定してPRを作らせたい

残念ながら、gradleのバージョンが古くて(6.9系)version catalogが使えなかったので、その場合にしか役に立たない備忘録 おそらくgradleのバージョンが7.2以上なら多分version catalog使って、こんな面倒なことしなくても色々解決する気がしている developer…

APIの権限チェックに@PreAuthorizeを使うのをやめた話

tl;dr @PreAuthorize と @Valid を同時に使用した場合に、評価の順番に対して直感的にはわかりづらい問題がある Issueとしては↓があたるが、 要はコントローラーのリクエストハンドラーの変数の評価よりもあとに @PreAuthorize の評価がされる為、 本来であ…

ConstraintValidatorのisValidでエラーメッセージを変更する

isValid 内でValidationMessagseのキー指定して切り替えって出来るんだっけ?ってなったので、個人的なメモ書き ドキュメントを読んでいたら出来そうだったので試した あんまり使う機会はなさそうではある(基本的にはConstraintsは分けるし、相関チェックみ…

BeanValidationでControlCharacterが含まれる場合をバリデーションする

リクエストとかでControlCharacterが混じっていると邪魔になるので弾きたかったという話 調べてもすぐにぱぱぱっと出てこなかったりして面倒なのでメモがてら書く どちらも空文字は許可するようにしてある テストはソースに書いてあるので興味があれば impor…

SpringでRollbackされた時に別トランザクションでデータの保存をしようとしてたのでメモ

大まかなコードのイメージ package com.example.app.application import com.example.app.domain.Sample import com.example.app.domain.SampleRepository import org.springframework.aop.framework.AopContext import org.springframework.stereotype.Serv…

SpringBootでTomcatの特定のValveを削除する

タイトル通り あんまり使い道はないと思われるが、ちょっと簡単に削除が出来るのか気になったので個人的なメモ 消すのはRemoteIpValve 設定の話はこの辺 バージョン SpringBoot(2.7.5) # application.properties server.tomcat.remoteip.protocol-header=x-f…

CVE-2022-45143周りを見たのでメモ

https://lists.apache.org/thread/yqkd183xrw3wqvnpcg3osbcryq85fkzjjvn.jp 仕事していて話題にあがったので暇つぶしがてら見てみた とりあえず素のtomcatで試す conf/server.xmlを書き換える(関係ない箇所は省略) <Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <Engine name="Catalina" defaultHost="localhost"> </engine></service></server>