protected Session createAdministrativeSession()

in src/main/java/org/apache/sling/jcr/oak/server/internal/OakSlingRepository.java [65:83]


    protected Session createAdministrativeSession(String workspace) throws RepositoryException {
        // TODO: use principal provider to retrieve admin principal
        Set<AdminPrincipal> principals = singleton(() -> OakSlingRepository.this.adminId);
        AuthInfo authInfo = new AuthInfoImpl(this.adminId, emptyMap(), principals);
        Subject subject = new Subject(true, principals, singleton(authInfo), emptySet());
        try {
            return Subject.doAsPrivileged(subject, new PrivilegedExceptionAction<Session>() {
                @Override
                public Session run() throws Exception {
                    Map<String, Object> attrs = new HashMap<String, Object>();
                    attrs.put("oak.refresh-interval", 0);
                    // TODO OAK-803: Backwards compatibility of long-lived sessions
                    return getJackrabbitRepository().login(null, null, attrs);
                }
            }, null);
        } catch (PrivilegedActionException e) {
            throw new RepositoryException("failed to retrieve admin session.", e);
        }
    }