From e4f84f78ba8c97db1537fcd5c8e086ddfac6a4fe Mon Sep 17 00:00:00 2001 From: "makabe.t" Date: Fri, 2 Jun 2023 04:55:28 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=20121:=20=E3=83=AA=E3=83=95?= =?UTF-8?q?=E3=83=AC=E3=83=83=E3=82=B7=E3=83=A5=E3=83=88=E3=83=BC=E3=82=AF?= =?UTF-8?q?=E3=83=B3=E3=81=AE=E7=99=BA=E8=A1=8C=E6=96=B9=E6=B3=95=E3=83=BB?= =?UTF-8?q?=E7=99=BA=E8=A1=8C=E5=86=85=E5=AE=B9=E3=81=8C=E4=B8=8D=E9=81=A9?= =?UTF-8?q?=E5=88=87=E3=81=AA=E5=95=8F=E9=A1=8C=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 [Task1904: リフレッシュトークンの発行方法・発行内容が不適切な問題の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1904) セキュリティ・権限管理の要であるリフレッシュトークンのロール設定に関する修正ですので、開発メンバー全員にご確認いただき、変更内容について認識を合わせていただきたいです。 - リフレッシュトークンの発行で使用するロールがクライアントから送られた値をそのまま利用する実装になっていましたので、APIのロールの取り扱いを修正しました - ユーザー追加APIで想定している(author/typist/none)のみを受け付けるようにする - 想定外のロールの場合は400エラー - クライアントからも想定通りのロールを送信するようロールの定数値を修正 - リフレッシュトークンを発行する際にDBの値をそのまま使わず、想定値のどれかを判断して定数を設定する - DBに登録されているロールが想定外の文字列の場合は500エラーとなる ## レビューポイント - トークンのロール設定が安全にできるようになっていることをメンバー全員で合意 - APIのパラメータを受け付ける際にIsInで想定ロール文字列のみを受け付けるようにしているが問題はないか - リフレッシュトークンの生成時に直接DBのロールを設定しないようにしたが、トークンのロール設定として問題はないか - 意図しないトークンへの権限の付与などは起こりえないか。 - クライアントからadminなどのユーザー追加時に想定していない権限を付与しようとしてもAPIではじかれるか ## UIの変更 - なし ## 動作確認状況 - ローカルで確認 ## 補足 - ユーザー追加時に登録されるロールが変更となったのでマージ後に利用する場合は再度の登録をお願いします。 --- .../src/features/user/constants.ts | 6 ++--- .../src/pages/UserListPage/popup.tsx | 6 ++--- dictation_server/src/common/error/code.ts | 1 + dictation_server/src/common/error/message.ts | 1 + dictation_server/src/constants/index.ts | 19 +++++++++++--- .../features/accounts/accounts.controller.ts | 4 +-- .../src/features/auth/auth.service.ts | 26 ++++++++++++++++--- .../src/features/users/types/types.ts | 3 +++ 8 files changed, 52 insertions(+), 14 deletions(-) diff --git a/dictation_client/src/features/user/constants.ts b/dictation_client/src/features/user/constants.ts index 320e99e..bc46f87 100644 --- a/dictation_client/src/features/user/constants.ts +++ b/dictation_client/src/features/user/constants.ts @@ -1,7 +1,7 @@ export const ROLE = { - AUTHOR: "Author", - TYPIST: "Transcriptionist", - NONE: "None", + AUTHOR: "author", + TYPIST: "typist", + NONE: "none", } as const; export type RoleType = typeof ROLE[keyof typeof ROLE]; diff --git a/dictation_client/src/pages/UserListPage/popup.tsx b/dictation_client/src/pages/UserListPage/popup.tsx index 45fd300..557ba94 100644 --- a/dictation_client/src/pages/UserListPage/popup.tsx +++ b/dictation_client/src/pages/UserListPage/popup.tsx @@ -199,14 +199,14 @@ export const UserAddPopup: React.FC = (props) => { /> {t(getTranslationID("userListPage.label.transcriptionist"))} -