このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
apricot:usage:ja:middleware [2020/08/24 11:21] y2sunlight [アクセスログ] |
apricot:usage:ja:middleware [2020/09/03 13:46] (現在) y2sunlight [Apricot ミドルウェア] |
||
---|---|---|---|
行 15: | 行 15: | ||
* Apricot ミドルウェア | * Apricot ミドルウェア | ||
* [[apricot: | * [[apricot: | ||
+ | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
+ | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
行 84: | 行 86: | ||
\\ | \\ | ||
- | ===== Middleware の実装 ===== | + | ===== Middlewareの実装 ===== |
Apricotのスケルトンで提供されているミドルウェアは、以下場所にの配置してあります。この配置は必須ではありません。適宜アプリケーションのルールで変更して下さい。 | Apricotのスケルトンで提供されているミドルウェアは、以下場所にの配置してあります。この配置は必須ではありません。適宜アプリケーションのルールで変更して下さい。 | ||
行 128: | 行 130: | ||
</ | </ | ||
- | === Middleware の設定 === | + | === Middlewareの設定 === |
新しく作成したミドルウェアは、アプリケーションの設定ファイル ''/ | 新しく作成したミドルウェアは、アプリケーションの設定ファイル ''/ | ||
行 163: | 行 165: | ||
* ユーザ認証(基本認証 及び セッション認証) | * ユーザ認証(基本認証 及び セッション認証) | ||
- | ここでは、ユーザ認証以外のミドルウェアについて説明します。ユーザ認証については後続の章をご覧ください。 | + | ここでは、ユーザ認証以外のミドルウェアについて説明します。ユーザ認証については後続の章をご覧ください。これらのミドルウェアを適用したくない場合は、アプリケーションの設定ファイル( config/ |
\\ | \\ | ||
行 169: | 行 171: | ||
==== アクセスログ ==== | ==== アクセスログ ==== | ||
- | アクセスログのミドルウェアは、リクエストをモニタして次のプロセスを発動するだけの簡単な構造をしています。 | + | アクセスログのミドルウェアは、リクエストをモニタして次のプロセスを発動するだけの簡単な構造をしています。アクセスログをカスタマイズするには、このミドルウェアを修正して下さい。 |
{{fa> | {{fa> | ||
行 202: | 行 204: | ||
</ | </ | ||
- | 収集したログデータはinfoレベルで出力します。ログインユーザのアカウントを取得する為に、'' | + | 収集したログデータはinfoレベルで出力します。ログインユーザのアカウントを取得する為に、'' |
- | AuthUser は認証ユーザクラスのシングルトンで、AuthUser:: | + | \\ |
+ | ==== フォーム入力変換 ==== | ||
- | > TODO: | + | このミドルウェアの目的は、フォームの入力変数を変換することです。 |
- | \\ | + | * 入力値をトリミングします。 |
+ | * 入力値が空の場合、その値をnullにします。 | ||
- | ==== フォーム入力変換 | + | これらの変換を望まない変数については、そのキーを '' |
{{fa> | {{fa> | ||
行 250: | 行 254: | ||
</ | </ | ||
- | > TODO: | + | ==== CSRF対策 ==== |
- | \\ | + | このミドルウェアの目的は、CSRF対策です。発行しているCSRFトークンの検証に失敗した場合は、'' |
- | ==== CSRF対策 | + | CSR対策を望まないコントローラーについては、そのクラス名を '' |
{{fa> | {{fa> | ||
行 293: | 行 297: | ||
</ | </ | ||
- | > TODO: | + | '' |
+ | |||
+ | ^メソッド^機能^ | ||
+ | |generate()|セッション内のCSRFトークンが未生成の場合、それを生成してセッションに格納します。| | ||
+ | |verify():bool|フォームの入力変数とセッションに格納されているCSRFトークンを比較して同じならtrueを返します。これはHTTPメソッドがPOSTの場合のみ有効で、GETの場合は常にtrueを返します。| | ||
+ | |||
+ | フォーム内にCSRFトークンを入力変数として埋め込む方法については、「[[apricot: | ||
+ | |||
+ | アプリケーション設定( [[apricot: | ||
\\ | \\ | ||