将 Magnolia 内容嵌入现有的 Web 应用程序

Posted

技术标签:

【中文标题】将 Magnolia 内容嵌入现有的 Web 应用程序【英文标题】:Embed Magnolia content into existing web app 【发布时间】:2013-10-23 14:48:00 【问题描述】:

我们正在尝试将 Magnolia 管理的内容嵌入到现有 Web 应用程序的一些 JSP 中。在 Tomcat 中,我们部署并设置了一个“magnoliaAuthor”上下文,该上下文沿着我们现有的“app”上下文运行。

因此,例如,我们希望现有的 JSP(例如 /app/test.jsp)包含一个 Magnolia 页面,例如 /magnoliaAuthor/footer(只是一个 div)。在浏览器中,路径 /magnoliaAuthor/footer 呈现良好,但在尝试将其包含到 /app/test.jsp 时遇到问题:

c:import jsp:include

等等,有到/magnoliaAuthor/footer..的相对路径和绝对路径。

我们最多得到以下结果:

服务器返回 HTTP 响应代码:401 用于 URL:http://localhost:8080/magnoliaAuthor/footer(使用绝对 URL 时)。这个请求好像被 Magnolia 拒绝了..

我们无法找到有关如何组合此用例的确切描述。任何提示将不胜感激。

谢谢。

【问题讨论】:

您好 Daniel,我将问题回滚到其原始内容,因为您的编辑 radically changed the meaning of it。据我了解,您的原始问题(unauthorized 状态码)已解决。请随时针对您的新问题提出其他问题。 好的,很抱歉,我将更新后的问题重新发布到 link。感谢您的帮助。 不客气。顺便说一句,如果某个答案已经解决了您的问题,您可以通过点击其左侧的 ✓ 标记将其标记为“已接受”。 【参考方案1】:

HTTP 401 是 unauthorized

请求需要用户身份验证。

这很有意义:magnoliaAuthor 实例总是需要用户名和密码才能登录,因为它是 editors work 的实例。

您需要向 magnoliaAuthor 发送用户名和密码。我的研究表明 Magnolia 使用了两个登录过滤器,位于 /server/filters/login/loginHandlers

一把手HTTP basic authentication 另一个使用 Magnolia 登录表单处理登录

您可以使用 HTTP 基本身份验证并包含您的 Magnolia 页面,例如:

<c:import url="http://username:password@example.com/magnoliaAuthor/app/test" />

注意:您写道您没有任何问题,包括/magnoliaAuthor/footer。这意味着您访问这两个站点的安全配置是不同的。您应该考虑检查这一点,通常您不希望 magnoliaAuthor 中的 任何 资源在未经授权的情况下被访问。

【讨论】:

是的,你是对的,401 响应是由于未登录作者实例,所以我切换到 /magnoliaPublic/footer,但问题仍然存在 - 我将更新问题以使其更多清除。谢谢。

以上是关于将 Magnolia 内容嵌入现有的 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

将 Worklight 应用程序添加到现有的本机应用程序

在现有的 ios/android 应用程序中嵌入反应原生应用程序

Core-Data:想要将新的 web xml 内容持久保存到我的数据存储中,而不是替换现有的

Undertow:使用现有的 Servlet 实例

Magnolia 6.2 中的引导页面问题

如何将现有的地理服务器独立应用程序迁移到 Web 存档?