Spring Security 4.1から使える@AuthenticationPrincipal
かなりざっくりですが、引数に@AuthenticationPrincipalをつけてことでSpring Securityの処理でセッションに保持した情報を自動的に取得することができます。
4.1以前はgetPrincipal() を使って取得しないといけなかったのでかなりスッキリかけるようになりました。
package com.sample.api.controller import org.springframework.security.core.annotation.AuthenticationPrincipal @CrossOrigin @RestController @RequestMapping("/user") class UserController @Autowired constructor(private val userFacade: UserFacade, private val userService: UserService) { /** * ユーザ更新 * */ @PutMapping fun updateUser(@ModelAttribute request: UpdateUserRequest, @AuthenticationPrincipal userDetailDto: UserDetailDto): UpdateUserResponse { val userId = userDetailDto.id // 以前はこんな風に長ったらしく書かないといけなかった val userDetailDto: UserDetailDto = SecurityContextHolder.getContext().getAuthentication().getPrincipal() as UserDetailDto return UpdateUserResponse(userId) } }
関連情報
Spring BootやSpring Securityに関しては下記にまとめているので是非読んで見てください。
おすすめ書籍
JPAに関して体系的に学べる良い書籍だと思います。良くあるSpring系書籍ですとJPAは少ししか紹介がありませんが丸々一冊JPAに関してなので詳細な解説がされています。内容はJPAと他のORMとの比較から始まりセットアップ、実装の仕方まで幅広く網羅されています。これからJPAで開発を初めてみようかなと考えている方は一読することをオススメします!
Springの概要からインストール方法、各コア機能(Security, Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。これからSpring Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。対象は初心者だけでなく上級者まで幅広く学べるので是非読んでみてください!
The following two tabs change content below.
髙妻智一
2013年CyberAgent新卒入社
スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。
2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す