Использование TokenUtil для создания учетных данных в AEM 6.3

Я работаю над устаревшим проектом, который недавно был обновлен до AEM 6.3. Он использует общие куки для аутентификации пользователя в экземплярах AEM. Он специально использует TokenUtil создать учетные данные через createCredentials метод. Тем не менее, у меня было это требование, где я должен использовать Service User для входа вместо обычного loginAdministrative,

Я попытался проверить подлинность хранилища, прежде чем создавать токен.

    this.repositorySession = this.repository.loginService("myAuthenticatorService", "");
    authInfo = TokenUtil.createCredentials(request, response, this.repository, uid, true);

По-видимому, createCredentials делать звонки loginAdministrative что нежелательно. Итак, хотя я аутентифицирую SlingRepository против пользователя службы он будет продолжать бросать RepositoryException,

    // <editor-fold defaultstate="collapsed" desc="Compiled Code">
    /* 0: aconst_null
     * 1: astore        5
     * 3: aconst_null
     * 4: astore        6
     * 6: aload_2
     * 7: aconst_null
     * 8: invokeinterface org/apache/sling/jcr/api/SlingRepository.loginAdministrative:(Ljava/lang/String;)Ljavax/jcr/Session;
     * 13: astore        5
     * 15: new           org/apache/sling/auth/core/spi/AuthenticationInfo
     * 18: dup
     * 19: ldc           TOKEN
     * 21: aload_3
     * 22: invokespecial org/apache/sling/auth/core/spi/AuthenticationInfo."<init>":(Ljava/lang/String;Ljava/lang/String;)V
     ....

Выше приведены выдержки из Netbeans, проверяющие скомпилированный код.

У меня вопрос, есть ли альтернативы, чтобы правильно создать токен для данного идентификатора пользователя, не полагаясь на loginAdministrative? Прежде чем я попытаюсь реализовать свой собственный TokenUtil взглянув на оригинальную реализацию..

пс. я мог бы просто добавить свои пакеты к фрагменту конфигурации белого списка администратора Apache Sling Login, но я не думаю, что это выживет в долгосрочной перспективе..

РЕДАКТИРОВАТЬ Кажется, я не могу реализовать свой собственный TokenUtil в качестве обходного пути. Adobe не раскрывает com.day.crx.sling.crx-auth-token комплект для версии 2.5.30. На репозитории Maven только 2.4.30 общедоступно. Я должен был связаться с командой дневного ухода за помощью. Метод TokenAuthenticationHandler.getRepositoryId(bool) доступно только для 2.5.30, которое используется AEM 6.3.

0 ответов

Другие вопросы по тегам