Not enough segments というエラーメッセージが発生した
二度目がないようにメモ。
どこにも実装していないNot enough segmentsというエラーが発生したので、どこで発生したかを確認するためのメモ。
環境
- Python
- 3.12
- PyJWT
- 2.8.0
原因
JWTとして無効な形式の文字列をdecodeしていたため。
本来であれば、次の形式の文字列になるはずだったが異なるJWTをdecodeしていた。
<base64_encoded_header>.<base64_encoded_payload>.<signature>
エラーメッセージ自体はライブラリが発生させている。全てのライブラリを調べてないが、PythonのJWTライブラリの場合はこのエラーメッセージになっていそう。少なくとも、PyJWTとpython-joseとflask_jwt_extendedはこのメッセージの模様。
対応
正しいエラーメッセージだったので対応しない。ただし、JWT形式を無視したトークンで送信していたシステムに対して是正依頼。
ソースコード
終わりに
対策も何もしていないのでJWTの形式の共有、事例紹介というのをメインに共有します。