LogRecordScrubber
in package
監査ログレコード(audit_log テーブルから取得した連想配列)の url / referer / context / extra / reqHeader / reqBody に対して読み出し時のマスクを適用する。
Why not: ACMS_POST_Logger_Info::buildData() は ACMS_RAM の静的呼び出し・App::make() 等の 環境依存を含み、ハンドラ本体として直接テストしにくい(development-guidelines.md 「テストしない対象」参照)。マスク適用だけをこのクラスへ切り出すことで、Filter とプレーンな 連想配列だけに依存する形にし、protected メソッドへの ReflectionClass アクセスに頼らず 単体テスト可能にしている。
Table of Contents
Methods
- scrub() : array{url: string, referer: string, extra: string, context: array, reqHeader: array|null, reqBody: array|null}
- decodeJsonArray() : array<string|int, mixed>
- JSON文字列を配列としてデコードする。デコードに失敗、またはJSON配列以外だった場合は 空配列を返す
- encodeScrubbedJson() : string
- 保存済みのJSON文字列をデコード・スクラブし、再度JSON文字列として返す
- stringOrNull() : string|null
- $log[$key] が文字列であればそれを返し、そうでなければ null を返す。
Methods
scrub()
public
scrub(array<string|int, mixed> $log, Filter $filter) : array{url: string, referer: string, extra: string, context: array, reqHeader: array|null, reqBody: array|null}
Parameters
- $log : array<string|int, mixed>
- $filter : Filter
Return values
array{url: string, referer: string, extra: string, context: array, reqHeader: array|null, reqBody: array|null}decodeJsonArray()
JSON文字列を配列としてデコードする。デコードに失敗、またはJSON配列以外だった場合は 空配列を返す
private
decodeJsonArray(string|null $json) : array<string|int, mixed>
Parameters
- $json : string|null
Return values
array<string|int, mixed>encodeScrubbedJson()
保存済みのJSON文字列をデコード・スクラブし、再度JSON文字列として返す
private
encodeScrubbedJson(Filter $filter, string|null $json) : string
Parameters
- $filter : Filter
- $json : string|null
Return values
stringstringOrNull()
$log[$key] が文字列であればそれを返し、そうでなければ null を返す。
private
stringOrNull(array<string|int, mixed> $log, string $key) : string|null
audit_log_url 等のカラムはスキーマ上 NULL 許容のため、DB から取得した値が null の ケースをここで一箇所に集約して吸収する。
Parameters
- $log : array<string|int, mixed>
- $key : string