AEM - 使用管理会话的含义

时间:2015-11-30 10:38:02

标签: session cq5 aem

这一段代码片段是我现在多次见过的。

  Session adminSession = slingRepository.loginAdministrative(null);
  session = adminSession.impersonate (new SimpleCredentials("author",new char[0]));
  adminSession.logout();

然后,使用session对象进行进一步处理 现在,肯定会有一些使用管理会话的含义,但我不能确切地知道这些是什么。
所以,我的问题是

1。在任何特定用户的会话中使用管理会话的含义是什么?

2。管理员会话的目的是什么?(当需要管理会话时必须是一些用例)

编辑:
我相信使用adminResourceResolver也有同样的含义。只是为了确定

3。何时何时不使用管理员resourceResolver

2 个答案:

答案 0 :(得分:1)

  1. 在任何特定用户的会话中使用管理会话的含义是什么?
  2. 这很简单,你正在短路AEM的安全模型。这是非常糟糕的,因为您允许某些功能中的用户可能在更高的访问权限下运行。

    1. 管理员会话的目的是什么?(当需要管理会话时必须是一些用例)
    2. 实际上永远不应该使用管理员用户会话。它可以用于执行自动化系统功能,并且可能存在功能提供适当安全控制的情况,但是,更好的方法是在这些情况下使用具有一组访问权限的指定用户。

      1. 何时何时不使用admin的resourceResolver?
      2. 最佳实践答案。决不。

答案 1 :(得分:0)

通过上述代码段获取管理员会话是cq 5.6及其前身中最常用的反模式。

以这种方式获得的会话为您提供了对存储库的完全访问权限,您几乎可以做任何好的/ 错误

要处理此操作,需要为每个服务获取6.0会话,并且需要为它们提供相对权限。

检查以下链接sling service authentication以获取更多理解。