会員登録フォームの定義はEntryTypeに定義されています。その中でもパスワードはRepeatedPasswordTypeというサブフォームによって定義されています。
src/Eccube/Form/Type/RepeatedPasswordType.phpはパスワードを2回記入してもらうためのFormTypeです。
RepeatedPasswordTypeのオプションでは文字数や使える記号が正規表現で記載されています。
実際のコードです。
'options' => array( 'constraints' => array( new Assert\NotBlank(), new Assert\Length(array( 'min' => $this->config['password_min_len'], 'max' => $this->config['password_max_len'], )), new Assert\Regex(array( 'pattern' => '/^[[:graph:][:space:]]+$/i', 'message' => 'form.type.graph.invalid', )), ), ),
文字数制限について
password_min_lenは標準では「8文字」、password_max_lenは標準では「32文字」と設定されています。
これはconfig.ymlにpassword_min_len: 10といった指定をすることで変更可能です。
使える文字について
記号などの文字制限については下記の正規表現で指定されています。ちょっと驚いたのですがこの正規表現だとほとんどの半角記号とスペース等空白もパスワードに利用できますね。
‘pattern’ => ‘/^[[:graph:][:space:]]+$/i’,
ちょっとパスワードに空白文字は・・という方はお好みの正規表現で、英数字に限定してやるなどのカスタマイズをしてやれば良いかと思います。
‘pattern’ => ‘/^[a-z0-9]+$/i’,
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。