如何在Liferay 6.2门户中禁用CKEditor的frmcreatefolder.html路径?
解决Liferay 6.2禁用指定CKEditor页面的方法
以下是几种Liferay系统内部的解决方案,无需依赖外部工具:
方法1:通过Hook插件拦截请求(推荐,可持久化)
Liferay 6.2支持Hook插件扩展系统行为,你可以创建一个Hook来添加自定义过滤器,拦截目标页面的请求并返回403禁止访问:
- 创建一个Liferay Hook项目(可使用Liferay IDE或Maven archetype)
- 在
liferay-hook.xml中注册自定义Servlet过滤器:<hook> <servlet-filter> <servlet-filter-name>ForbidCreateFolderFilter</servlet-filter-name> <servlet-filter-class>com.yourcompany.filter.ForbidCreateFolderFilter</servlet-filter-class> </servlet-filter> <servlet-filter-mapping> <servlet-filter-name>ForbidCreateFolderFilter</servlet-filter-name> <url-pattern>/html/js/editor/ckeditor/editor/filemanager/browser/liferay/frmcreatefolder.html</url-pattern> </servlet-filter-mapping> </hook> - 实现过滤器类
ForbidCreateFolderFilter:import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class ForbidCreateFolderFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException {} @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse httpResponse = (HttpServletResponse) response; httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN, "Access Denied"); } @Override public void destroy() {} } - 编译部署Hook插件,重启Liferay后,访问目标页面会直接返回403。
方法2:直接替换/移除目标页面(快速临时方案)
如果暂时无法开发插件,可以直接修改部署后的静态资源:
- 找到Liferay部署目录下的
tomcat/webapps/ROOT/html/js/editor/ckeditor/editor/filemanager/browser/liferay/frmcreatefolder.html - 要么删除该文件(访问时返回404),要么将其内容替换为一个返回403的静态页面:
<!DOCTYPE html> <html> <head> <title>Access Denied</title> </head> <body> <h1>403 Forbidden</h1> <p>Access to this page is restricted.</p> </body> </html>
注意:此方法会在Liferay升级或重新部署ROOT应用时被覆盖,仅适合临时应急。
方法3:利用Liferay资源权限配置(进阶)
如果目标页面是通过Liferay的资源服务加载的,可以尝试在portal-ext.properties中添加资源拦截规则:
- 添加以下配置:
# 禁止访问指定路径的资源 resource.url.patterns.denied=/html/js/editor/ckeditor/editor/filemanager/browser/liferay/frmcreatefolder.html
注:部分Liferay 6.2版本可能需要配合
com.liferay.portal.servlet.filters.security.SecurityFilter的配置生效,若此方法无效,优先使用Hook方案。
内容的提问来源于stack exchange,提问作者SolS
相关产品推荐
相关产品推荐

