legacy-knowledge-base
公開されました Sep. 10, 2025

6.2 から DXP 7.2 にアップグレードした後、パスワード ポリシーにアクセスできません - 6.2 にロールバックしない回避策

written-by

Alexandra Rujzam

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

問題

6.2 から 7.2 にアップグレードした後、コントロール パネル > ユーザー > パスワード ポリシーに移動すると、「パスワード ポリシーは一時的に利用できません」という UI エラーが表示され、ログにエラーがスローされます。

ERROR [https-jsse-nio-8441-exec-4][PortletRequestDispatcherImpl:304]
    Unable to dispatch request: java.lang.IllegalArgumentException: Someone may
    be trying to circumvent the permission checker: companyId=20157, name=com.liferay.portal.kernel.model.PasswordPolicy,
    primKey=20200, scope=4}

Environment

  • ポータル 6.2
  • DXP 7.2

解決策

  • このケースを解決する方法については素晴らしい記事 ありますが、6.2 にロールバックして必要な変更を加えることができなくなったらどうしますか?
  • すでにアップグレードされた環境の問題を解決するために、groovy スクリプトを作成しました。 コントロール パネル -> 構成 -> サーバー管理 -> スクリプトに移動し、以下のスクリプトを貼り付けて [実行] をクリックします。
    import com.liferay.portal.kernel.model.PasswordPolicy;
    import com.liferay.portal.kernel.service.PasswordPolicyLocalServiceUtil;
    import com.liferay.portal.kernel.dao.jdbc.DataAccess;
    import com.liferay.portal.kernel.log.Log;
    import com.liferay.portal.kernel.log.LogFactoryUtil;
    import com.liferay.portal.kernel.model.ResourceConstants;
    import com.liferay.portal.kernel.service.ResourceLocalServiceUtil;
    import com.liferay.portal.kernel.util.StringBundler;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;

    public class UpdatePasswordPolicyResources {
    public void doUpdatePasswordPolicyResources() {
    Connection con = null;
    PreparedStatement ps = null;
    ResultSet rs = null;

    try {
    con = DataAccess.getUpgradeOptimizedConnection();
    StringBundler sb = new StringBundler(7);
    sb.append("select passwordPolicyId from PasswordPolicy left join ");
    sb.append("ResourcePermission on (PasswordPolicy.companyId = ");
    sb.append("ResourcePermission.companyId and ");
    sb.append("ResourcePermission.name = ? and ");
    sb.append("ResourcePermission.scope = ?) where ");
    sb.append("ResourcePermission.primKey = ? and ");
    sb.append("PasswordPolicy.defaultPolicy = ?");
    ps = con.prepareStatement(sb.toString());
    ps.setString(1, PasswordPolicy.class.getName());
    ps.setInt(2, ResourceConstants.SCOPE_INDIVIDUAL);
    ps.setString(3, PasswordPolicy.class.getName());
    ps.setString(4, String.valueOf(1));
    rs = ps.executeQuery();

    while (rs.next()) {
    long passwordPolicyId = rs.getLong("passwordPolicyId");
    updateResources(passwordPolicyId);
    }
    }

    catch (Exception e) {
    _log.error("Unable to add missing PasswordPolicy resources", e);
    }

    finally {
    DataAccess.cleanUp(con, ps, rs);
    }
    }

    protected void updateResources(long passwordPolicyId) {
    try {
    if (_log.isInfoEnabled()) {
    _log.info(
    "Adding missing resources for PasswordPolicyId " +
    passwordPolicyId);
    }
    PasswordPolicy passwordPolicy =
    PasswordPolicyLocalServiceUtil.getPasswordPolicy(passwordPolicyId);
    String name = PasswordPolicy.class.getName();
    ResourceLocalServiceUtil.updateResources(
    passwordPolicy.getCompanyId(), name, ResourceConstants.SCOPE_INDIVIDUAL, name,
    String.valueOf(passwordPolicyId));

    if (_log.isInfoEnabled()) {
    _log.info(
    "Successfully updated resources for PasswordPolicy " +
    passwordPolicyId);
    }
    }
    catch (Exception e) {
    _log.error(
    "Error while adding missing resources for PasswordPolicy " +
    passwordPolicyId,
    e);
    }
    }

    private static final Log _log = LogFactoryUtil.getLog(
    UpdatePasswordPolicyResources.class);
    }

    UpdatePasswordPolicyResources updatePasswordPolicyResources =
    new UpdatePasswordPolicyResources();

    updatePasswordPolicyResources.doUpdatePasswordPolicyResources();

did-this-article-resolve-your-issue

legacy-knowledge-base