匿名用户的 RichText 呈现问题
RichText rendering issue for anonymous users
我正在尝试使用 wcm API 从 WCM 渲染富文本内容。我必须 jsp 这样做。它为除匿名之外的所有用户组正确呈现。当我查看呈现的内容时,我在富文本中看到损坏的图像。当我登录并查看呈现的内容时,显示图像。
这是我的代码:
Workspace ws = WCM_API.getRepository().getSystemWorkspace();
ws.login();
DocumentLibrary lib = ws.getDocumentLibrary("Portal Site");
String s1 = "";
String s2 = "";
if (lib!=null) {
DocumentIdIterator<Document> it = ws.findByName(DocumentTypes.Content,"kino");
if (it.hasNext()) {
DocumentId<Document> docid = it.next();
Content doc = (Content) ws.getById(docid);
s1 = "Title: " + doc.getTitle() + "\n";
RichTextComponent c = (RichTextComponent) doc.getComponent("Body");
s2 = "Text: " + c.getRichText();
}
}
out.println(s1);
out.println(s2);
s2 是为授权用户输出带图像的富文本。
当我注销并查看 s2 输出时:显示文本但图像损坏
请确保您已在用户级别授予对所有 RichText 组件和父站点区域的匿名访问权限。
并在工作区对象上添加此调用
workspace.useUserAccess(true);
在我的案例中,解决方案与访问级别无关!
我检查了 url 的内容,在这两种情况下它都包含 /myconnect 词(例如:http:ip_address:port/wps/wcm/myconnect/...)
我发现 myconnect 是给授权用户的
connect 适用于匿名用户。 (例如:http:ip_address:port/wps/wcm/connect/...)
只需将 url 中的 myconnect 替换为 wcm 内容,我就设法解决了问题:
我正在尝试使用 wcm API 从 WCM 渲染富文本内容。我必须 jsp 这样做。它为除匿名之外的所有用户组正确呈现。当我查看呈现的内容时,我在富文本中看到损坏的图像。当我登录并查看呈现的内容时,显示图像。
这是我的代码:
Workspace ws = WCM_API.getRepository().getSystemWorkspace();
ws.login();
DocumentLibrary lib = ws.getDocumentLibrary("Portal Site");
String s1 = "";
String s2 = "";
if (lib!=null) {
DocumentIdIterator<Document> it = ws.findByName(DocumentTypes.Content,"kino");
if (it.hasNext()) {
DocumentId<Document> docid = it.next();
Content doc = (Content) ws.getById(docid);
s1 = "Title: " + doc.getTitle() + "\n";
RichTextComponent c = (RichTextComponent) doc.getComponent("Body");
s2 = "Text: " + c.getRichText();
}
}
out.println(s1);
out.println(s2);
s2 是为授权用户输出带图像的富文本。 当我注销并查看 s2 输出时:显示文本但图像损坏
请确保您已在用户级别授予对所有 RichText 组件和父站点区域的匿名访问权限。 并在工作区对象上添加此调用
workspace.useUserAccess(true);
在我的案例中,解决方案与访问级别无关! 我检查了 url 的内容,在这两种情况下它都包含 /myconnect 词(例如:http:ip_address:port/wps/wcm/myconnect/...) 我发现 myconnect 是给授权用户的 connect 适用于匿名用户。 (例如:http:ip_address:port/wps/wcm/connect/...) 只需将 url 中的 myconnect 替换为 wcm 内容,我就设法解决了问题: