AbstractServlet.java 2.29 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.commons.servlets.AbstractCommandServlet
 *  javax.jcr.RepositoryException
 *  javax.jcr.Session
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.jackrabbit.api.JackrabbitSession
 *  org.apache.jackrabbit.api.security.user.Authorizable
 *  org.apache.jackrabbit.api.security.user.UserManager
 *  org.apache.sling.api.SlingHttpServletRequest
 *  org.apache.sling.api.resource.ResourceResolver
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.day.cq.wcm.notification.impl;

import com.day.cq.commons.servlets.AbstractCommandServlet;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import org.apache.felix.scr.annotations.Component;
import org.apache.jackrabbit.api.JackrabbitSession;
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.ResourceResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component(metatype=0, componentAbstract=1)
public abstract class AbstractServlet
extends AbstractCommandServlet {
    protected final Logger log;
    public static final String JSON_EXTENSION = "json";
    public static final String JSON_CONTENT_TYPE = "application/json";

    public AbstractServlet() {
        this.log = LoggerFactory.getLogger(this.getClass());
    }

    public final class RequestInfo {
        public Session session;
        public Authorizable user;

        public RequestInfo(SlingHttpServletRequest request) {
            this(request, request.getRemoteUser());
        }

        public RequestInfo(SlingHttpServletRequest request, String userId) {
            this.session = (Session)request.getResourceResolver().adaptTo(Session.class);
            try {
                UserManager userManager = ((JackrabbitSession)this.session).getUserManager();
                this.user = userManager.getAuthorizable(userId == null ? request.getRemoteUser() : userId);
            }
            catch (RepositoryException re) {
                this.user = null;
                AbstractServlet.this.log.error("Unable to query inbox for user " + request.getRemoteUser(), (Throwable)re);
            }
        }
    }

}