【问题标题】:Path /WEB-INF/jsp/newportlet/view.jsp is not accessible by this portlet此 portlet 无法访问路径 /WEB-INF/jsp/newportlet/view.jsp
【发布时间】:2012-03-03 05:32:39
【问题描述】:

尝试将 portlet JSP 放入 WEB-INF 文件夹并遇到错误

Path /WEB-INF/jsp/newportlet/view.jsp is not accessible by this portlet

为什么会出现这个错误?是否可以允许 portlet 访问 WEB-INF?除了将它们放在WEB-INF中之外,是否可以直接关闭从Web浏览器访问portlet JSP?

更新 1

我刚刚通过向导创建了一个新的 portlet。没有编写代码,只是 JSP 位置集。该位置适用于向导,因为它将 JSP 放在那里。该位置在portlet.xml 中反映为<portlet> 标签的以下子标签:

<init-param>
    <name>view-jsp</name>
    <value>/WEB-INF/jsp/newportlet/view.jsp</value>
</init-param>

类的代码为空:

public class NewPortlet extends MVCPortlet {
}

【问题讨论】:

  • 你能展示一下你是如何访问jsp的代码吗?
  • 您是否检查过此文件夹(newportlet)是否具有读取权限?
  • @alfasin 我在eclipse下运行Liferay,所以权限应该一直都是一样的。如果向导能够创建文件,则它们是可访问的。
  • @mijer,请查看更新;实际上没有代码,只是创建了向导模板。
  • @Dims 很容易检查它:只需将另一个 JSP 放在同一个文件夹下,看看它是否可以访问。我认为值得“浪费”大约 1 分钟来检查它。

标签: java security jsp liferay file-access


【解决方案1】:

来自this话题

我假设你不使用 MVCPortlet(默认情况下你不能包含 WEB-INF 目录中的文件)。

还可以看看MVCPortlet.checkJSPPath(String)方法的源代码。我相信你可以覆盖它,所以它不会抛出异常。

【讨论】:

  • 覆盖帮助,虽然我不喜欢这个解决方案。它应该是一些推荐的。
猜你喜欢
  • 2014-08-17
  • 1970-01-01
  • 2016-07-03
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 2010-12-14
  • 2015-01-23
相关资源
最近更新 更多