重要なお知らせ。データベースを変更することは危険な作業です! 変更を行う前に、必ずデータベースのバックアップを取ってください。
カスタムポータルのプロパティがすでにコントロールパネルで設定されている場合、Liferayはportal-ext.propertiesファイルで設定されているプロパティを使用しません。 これは、コントロール パネルでプロパティを設定すると、そのプロパティがデータベースに保存され、データベースの値が portal-ext.propertiesの設定を上書きするために発生します。
残念ながら、コントロールパネルで値を設定すると、その時点からLiferayはコントロールパネルを使ってそのプロパティを制御しなければなりません。 これは、コントロールパネルでプロパティを削除しても、データベースにはそのプロパティの値が空になってしまうからです。 これらの空の値であっても、 portal-ext.propertiesの値よりも優先されます。
portal-ext.properties を使用するためには、もう一度データベースから適切な環境設定を削除しなければなりません。 データベースでは、これらのプロパティは、特定のフィールドの "preferences "列の中の "portalpreferences "というテーブルに格納されており、以下のようになっています。
open.sso.logout.urlhttp://CUSTOM_ATTR.example.com:8080/opensso/UI/Logout?goto=http://portalhost.example.com:8080/web/guest/home
前述したように、空の値はこのようになります。
open.sso.logout.url決議
portal-ext.properties ファイルの属性をもう一度使用するには、以下の手順に従ってください。
-
MySQL WorkbenchのようなGUIデータベースツールを使用する
-
ポータルのデータベースに移動し、"portalpreferences "というテーブルを見つけます。
-
探している属性の名前を含むクエリを実行します。 私たちのケースでは、先に述べた
open.sso.logout.urlの設定を変更し、他の oppen.sso 関連の設定を確認したいので、この場合のクエリは次のようになります。
SELECT * FROM [database-name].portalpreferences where PREFERENCES like '%open.sso%';
下の例では、テーブルのカラムを右クリックすると、自動的にクエリが挿入されます。
SELECT * FROM [database-name].portalpreferences. -
すべてのフィールドデータをテキストエディタにコピーして、前に述べた環境設定を慎重に削除してください:
open.sso.logout.urlhttp://CUSTOM_ATTR.example.com:8080/opensso/UI/Logout?goto=http://portalhost.example.com:8080/web/guest/home -
完了したら、新しいフィールド値をデータベースに保存します。 MySQL Workbenchは、テーブルを変更するためのクエリを自動的に作成します。 変更をコミットすることを忘れないでください。 (右下の適用ボタンに注目)
-
これで特定の値はクリアされたので、
portal-ext.propertiesで設定できます。
ポータルを正しく起動するために必要なプロパティがあるので、データベースからクリアしてからLiferayを起動する前に、 portal-ext.properties ファイルでプロパティを設定済みであることを確認してください。
追加情報
ヒント。
- 属性名は portal.properties ファイルで見つけることができます。 この例では、
open.sso.logout.urlを portal.properties とデータベースの両方で見つけることができます。 - また、値を特別な名前に設定することで、自分の値を見つけることができます。
- デフォルトの属性。portal-ext.propertiesにもコントロールパネルにもプロパティがない場合、すでにデフォルト値が設定されている可能性があります。 これらの値はポータルのソースから来ており、ポータルは自動的にコントロールパネルに値を入力します。 これらは、コントロールパネルまたは
portal-ext.propertiesのいずれかで上書きすることができます。