You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Liferay 7.4.2 CE版本中URL重定向被禁止导致工作流无法编辑的问题?

解决Liferay 7.4.2 CE在Apache SSL反向代理下的工作流重定向问题

我之前处理过类似的Liferay反向代理场景下的安全重定向问题,结合你的情况,给你两个方向的解决方案,先从Apache配置入手,再搭配Liferay 7.4的新属性设置,应该能解决工作流组件不显示的问题。

一、Apache反向代理层面的关键配置

首先要确保Apache正确将用户访问的真实协议、主机名和端口传递给后端的Tomcat/Liferay,否则Liferay会认为重定向请求来自不安全的来源。

  1. 启用必要的Apache模块:
    确保你的Apache已经启用了mod_proxy、mod_proxy_http和mod_headers模块,Debian/Ubuntu系统可以通过以下命令启用:

    a2enmod proxy proxy_http headers
    
  2. 配置SSL虚拟主机的反向代理规则:
    修改你的Apache SSL站点配置文件(通常在/etc/apache2/sites-available/your-domain.conf),添加以下内容:

    <VirtualHost *:443>
        ServerName your-domain.com  # 替换成你的实际域名
        SSLEngine on
        SSLCertificateFile /path/to/your/certificate.pem
        SSLCertificateKeyFile /path/to/your/private-key.pem
    
        # 反向代理到Tomcat的8080端口
        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/
    
        # 传递真实的协议、主机和端口给Liferay
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Host "your-domain.com"
        RequestHeader set X-Forwarded-Port "443"
    </VirtualHost>
    
  3. 重启Apache使配置生效:

    systemctl restart apache2
    

二、Liferay 7.4.2的新属性配置(portal-ext.properties)

你提到旧的redirect.url.security.mode和redirect.url.domains.allowed已经弃用,Liferay 7.4改用了更精细的安全属性,同时需要开启信任反向代理传递的头信息:

  1. 开启反向代理头信任:
    添加以下属性让Liferay信任Apache传递的X-Forwarded-*头:

    web.server.forwarded.host.enabled=true
    web.server.forwarded.port.enabled=true
    web.server.forwarded.protocol.enabled=true
    
  2. 设置正确的服务器基础信息:
    确保Liferay知道外部访问的真实协议、主机和端口:

    web.server.protocol=https
    web.server.host=your-domain.com  # 替换成你的实际域名
    web.server.https.port=443
    portal.instance.protocol=https
    
  3. 配置允许的重定向主机:
    替代旧属性的新配置是portal.security.allowed.redirect.hosts,指定允许的重定向域名:

    portal.security.allowed.redirect.hosts=your-domain.com
    # 如果有多个域名需要允许,用逗号分隔:
    # portal.security.allowed.redirect.hosts=your-domain.com,www.your-domain.com
    
  4. 重启Tomcat并清除缓存:
    重启Tomcat后,最好清除Liferay的缓存(可以通过控制面板的「服务器管理」->「缓存」页面清理,或者手动删除Tomcat的work和temp目录),确保新配置生效。

验证

完成上述配置后,再次访问工作流控制面板,应该不会再出现Redirect URL is not allowed的警告,工作流的创建/编辑组件也会正常显示。

核心原因是:如果反向代理配置不正确,Liferay接收到的请求信息是来自localhost:8080,而用户实际访问的是https://your-domain.com,Liferay会认为这个重定向是跨域的不安全请求,从而阻止并隐藏相关组件。通过正确传递头信息和配置允许的重定向主机,就能解决这个问题。

内容的提问来源于stack exchange,提问作者dsorato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 01:23:14