我对 liferay 的前置检查有疑问(我认为)。我正在 liferay 7.3.5 中工作。 我有一些 java 代码来检索类别列表,然后我希望向用户显示该列表。但我注意到,当用户未登录时,我的代码无法检索任何内容,但登录后它确实可以工作(所以我知道问题不在显示中)。我希望客人能够查看此列表。
我已经检查并仔细检查了词汇表和类别本身的权限,但所有内容都启用了访客的查看权限。
这是我的吸气剂代码:
public List<AssetCategory> getSiteCategories(long vocabId) throws PortalException {
List<AssetCategory> categories = new ArrayList<>();
categories = AssetCategoryServiceUtil.getVocabularyCategories(vocabId, -1, -1, null);
return categories.stream()
.sorted(Comparator.comparing(AssetCategory::getName, String.CASE_INSENSITIVE_ORDER))
.collect(Collectors.toList());
}
有什么想法为什么这无法为客人检索任何东西吗? 如果需要更多代码或上下文,我将很乐意提供。
很难回答这么详细的问题。
我最好的猜测是,您在权限检查器可以检索当前用户上下文的任何上下文之外执行此代码。 “无用户”很可能(技术上)与“访客用户”不同。
如果这没有帮助,请将此代码的调用上下文添加到您的问题中