aem - 无法在 AEM 6.3 中为登录用户获取唯一会话
问题描述
我有以下要求:我使用的是 AEM 6.3 版本。有一个使用 SOAP 客户端的第三方应用程序。SOAP 客户端几乎没有需要实现的方法。对于其中一种方法,我需要提供登录 AEM 用户的会话 ID(会话对象应包含有关登录用户、到期时间等的一些基本信息)。我只需要作者实例上的会话 ID。 第三方应用程序需要来自 AEM 作者实例的 AEM 页面信息。 不幸的是,我无法获得登录用户的任何唯一会话 ID。我得到的会话是每次刷新页面时都会更改的存储库/ JCR 会话。我还以为我可以使用JsessionID,但我不知道如何获取JsessionID。
任何人都可以请帮忙。
解决方案
我认为您可以使用用户管理器来获取 Authorizable 对象:
Session session = resourceResolver.adaptTo(Session.class);
UserManager userManager = resourceResolver.adaptTo(UserManager.class);
Authorizable auth = userManager.getAuthorizable(session.getUserID());
然后您应该能够获得 ID 或用户路径来识别您的“会话”。
推荐阅读
- git - 如何从python脚本接收返回值到预提交钩子
- android - 每个 RecyclerView.ViewHolder 一个 ViewModel 或(等效)
- excel - 根据 2 个标准输入将行从一个 Excel 工作表复制到另一个工作表
- php - 作曲家。如何根据用户 php 版本安装特定版本的包?
- hyperledger-fabric - 错误:14 不可用:执行 composer network install 命令时出现 EOF
- python - 在 python numpy.linalg 中使用逆矩阵函数“inv”
- asp.net - Asp.NET Core 身份验证失败
- mysql - 具有最大日期的 IN 子句的 LINQ 表达式
- django - 如何使用 DRF 为所有 Django 模型创建 CRUD REST API?
- javascript - 如何在 React 经典 `class` 组件中使用 React 钩子?