legacy-knowledge-base
公開されました Jul. 2, 2025

スクリーン名について(Liferay DXP版)

written-by

Liferay Support

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

背景:

Liferayのデフォルト設定では使用できないスクリーン名があります。 その制限の回避方法をご紹介します。

使用不可能な文字

デフォルトのLiferayで、スクリーン名に使用出来ない文字や文字列は以下の通りとなります:

  • 「半角英数字(0-9, a-z)」、「-(ハイフン)」、「.(ドット)」、「_(アンダースコア)」以外を含む文字列

 ※半角大文字で入力した場合でも全て小文字に変換されます※

  • @を含む文字列
  • 半角数字のみの文字列
  • 75文字より多い文字列
  • admin.reserved.screen.namesプロパティに指定された文字列

又は「コントロールパネル>インスタンス設定>設定>ユーザー”使用禁止スクリーン名とメール」の「スクリーン名」欄に設定した文字列

  • 以下のフレーズ(大文字小文字の組み合わせを問わず使用不可)
    • null
    • guest
    • anonymous-guest
    • anonymous
    • postfix

半角数字のみ文字列を可能にする

半角数字のみの文字列をスクリーン名に使用できるようにするには、次のプロパティを設定します。デフォルトでは無効になっています。

users.screen.name.allow.numeric=true

 

※ただし、このプロパティを設定した場合でも、以下の制限がありますので、予めご了承ください。

半角数字のみ文字列の制限と回避方法

半角数字のみのスクリーン名を有効にした場合でも、以下と重複するものはスクリーン名に使用できませんのでご注意ください。

  • Group_.groupIdと重複する数値
  • UserGroup.userGroupIdと重複する数値

※現時点で上記をスクリーン名に使用する方法は無く、コアエンジニアが仕様の見直しを検討中です(LPS-66460)。ただし、後述の手順を実施することで、これら数値の重複を防ぐことができます。

回避方法は2つありますが、完全回避のできる前者を推奨します。

1) 初期化が可能な場合(開発段階)

この方法は、データベースの初期化が必要になります。すでに運用を開始しており初期化できない場合は、後述の「初期化が不可能な場合」をご参照ください。

  1. Liferayを停止
  2. データベースをバックアップ
  3. Counterテーブルを除く、全テーブルをドロップ(初期化)
  4. Counterテーブルの「com.liferay.counter.model.Counter」を除く、全レコードを削除
  5. 「com.liferay.counter.model.Counter」の値を「100000000(想定されるユーザーの範囲以上)」に変更
  6. Liferayを起動

 「Table 'counter' already exists: create table Counter」と

「Duplicate entry 'com.liferay.counter.model.Counter' for key 'PRIMARY': insert into Counter」エラーが発生しますが、問題ありません。

  1. 「com.liferay.counter.model.Counter」に指定した値(100000000)以降からサイトID(グループID)等が作成されます。

 これにより、ユーザーのスクリーン名との重複を防ぐことができます。

2) 初期化が不可能な場合(運用段階)

この方法により、ワークアラウンド実施以降に作成されるサイトID(グループID)については、スクリーン名との重複を防ぐことができます。ただし既存のサイトID(グループID)は例外となります。

  1. Liferayを停止
  2. データベースをバックアップ
  3. 「com.liferay.counter.model.Counter」の値を「100000000(想定されるユーザーの範囲以上)」に変更
  4. Liferayを起動
did-this-article-resolve-your-issue

legacy-knowledge-base