将 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 基本身份验证并包含您的 Magnolia 页面,例如:
<c:import url="http://username:password@example.com/magnoliaAuthor/app/test" />
注意:您写道您没有任何问题,包括/magnoliaAuthor/footer
。这意味着您访问这两个站点的安全配置是不同的。您应该考虑检查这一点,通常您不希望 magnoliaAuthor 中的 任何 资源在未经授权的情况下被访问。
【讨论】:
是的,你是对的,401 响应是由于未登录作者实例,所以我切换到/magnoliaPublic/footer
,但问题仍然存在 - 我将更新问题以使其更多清除。谢谢。以上是关于将 Magnolia 内容嵌入现有的 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
在现有的 ios/android 应用程序中嵌入反应原生应用程序