Search in sources :

Example 1 with HttpEvent

use of org.bedework.sysevents.events.HttpEvent in project bw-calendar-engine by Bedework.

the class BwSysIntfImpl method init.

@Override
public String init(final HttpServletRequest req, final String account, final boolean service, final boolean calWs, final boolean synchWs, final boolean notifyWs, final boolean socketWs, final String opaqueData) throws WebdavException {
    try {
        this.calWs = calWs;
        this.synchWs = synchWs;
        final HttpReqInfo reqi = new HttpReqInfo(req);
        // In case we reinit
        principalInfo = null;
        if (req != null) {
            urlHandler = new UrlHandler(req, !calWs);
        } else {
            urlHandler = new UrlHandler("", null, true);
        }
        // final HttpSession session = req.getSession();
        // final ServletContext sc = session.getServletContext();
        // final String appName = sc.getInitParameter("bwappname");
        // if ((appName == null) || (appName.length() == 0)) {
        // throw new WebdavException("bwappname is not set in web.xml");
        // }
        // Notification service calling?
        final String id;
        final String notePr = reqi.notePr();
        if (notifyWs) {
            id = doNoteHeader(reqi.note(), notePr);
        } else if (socketWs) {
            final String tkn = reqi.socketToken();
            if ((tkn == null) || !tkn.equals(getSystemProperties().getSocketToken())) {
                throw new WebdavForbidden();
            }
            id = reqi.socketPr();
        } else {
            id = account;
        }
        doBedeworkExtensions(reqi.bedeworkExtensions());
        /* Find the mbean and get the config */
        // ObjectName mbeanName = new ObjectName(CalDAVConf.getServiceName(appName));
        // Call to set up ThreadLocal variables
        boolean publicAdmin = false;
        boolean adminCreateEprops = false;
        if (!notifyWs && (opaqueData != null)) {
            final String[] vals = opaqueData.split("\t");
            for (final String val : vals) {
                if (val.startsWith("public-admin=")) {
                    publicAdmin = Boolean.valueOf(val.substring(13));
                    continue;
                }
                if (val.startsWith("adminCreateEprops=")) {
                    adminCreateEprops = Boolean.valueOf(val.substring(18));
                }
            }
        }
        getSvci(id, reqi.runAs(), service, publicAdmin, reqi.clientId(), adminCreateEprops);
        authProperties = svci.getAuthProperties();
        sysProperties = configs.getSystemProperties();
        basicSysProperties = configs.getBasicSystemProperties();
        svci.postNotification(new HttpEvent(SysCode.CALDAV_IN));
        reqInTime = System.currentTimeMillis();
        currentPrincipal = svci.getUsersHandler().getUser(id);
        if (notifyWs && (notePr != null)) {
            final String principalToken = reqi.principalToken();
            if (principalToken == null) {
                throw new WebdavUnauthorized();
            }
            final BwPreferences prefs = svci.getPrefsHandler().get();
            if ((prefs == null) || (prefs.getNotificationToken() == null) || !principalToken.equals(prefs.getNotificationToken())) {
                throw new WebdavUnauthorized();
            }
        }
        return id;
    } catch (final WebdavException we) {
        throw we;
    } catch (final Throwable t) {
        throw new WebdavException(t);
    }
}
Also used : BwPreferences(org.bedework.calfacade.svc.BwPreferences) UrlHandler(org.bedework.webdav.servlet.shared.UrlHandler) WebdavForbidden(org.bedework.webdav.servlet.shared.WebdavForbidden) WebdavException(org.bedework.webdav.servlet.shared.WebdavException) WebdavUnauthorized(org.bedework.webdav.servlet.shared.WebdavUnauthorized) HttpEvent(org.bedework.sysevents.events.HttpEvent)

Example 2 with HttpEvent

use of org.bedework.sysevents.events.HttpEvent in project bw-calendar-engine by Bedework.

the class JmsNotificationsHandlerImpl method post.

@Override
public void post(final SysEventBase ev) throws NotificationException {
    if (debug) {
        debug(ev.toString());
    }
    long start = System.currentTimeMillis();
    send: {
        if (ev instanceof MillisecsEvent) {
            monitor.post(ev);
            if ((ev instanceof TimedEvent) || (ev instanceof HttpEvent)) {
                break send;
            }
        }
        syslog.post(ev);
        boolean changeEvent = false;
        for (final Attribute attr : ev.getMessageAttributes()) {
            if (!"changeEvent".equals(attr.name)) {
                continue;
            }
            changeEvent = Boolean.valueOf(attr.value);
            break;
        }
        if (changeEvent) {
            changes.post(ev);
        }
        if (ev instanceof EntityQueuedEvent) {
            final EntityQueuedEvent eqe = (EntityQueuedEvent) ev;
            if (((EntityQueuedEvent) ev).getInBox()) {
                scheduleIn.post(ev);
            } else {
                scheduleOut.post(ev);
                break send;
            }
        }
        if (ev instanceof ScheduleUpdateEvent) {
            scheduleIn.post(ev);
        }
    }
    // send
    sends++;
    sendTime += System.currentTimeMillis() - start;
    if ((sends % 100) == 0) {
        debug("Sends: " + sends + " avg: " + sendTime / sends);
    }
}
Also used : EntityQueuedEvent(org.bedework.sysevents.events.EntityQueuedEvent) MillisecsEvent(org.bedework.sysevents.events.MillisecsEvent) Attribute(org.bedework.sysevents.events.SysEventBase.Attribute) TimedEvent(org.bedework.sysevents.events.TimedEvent) HttpEvent(org.bedework.sysevents.events.HttpEvent) ScheduleUpdateEvent(org.bedework.sysevents.events.ScheduleUpdateEvent)

Aggregations

HttpEvent (org.bedework.sysevents.events.HttpEvent)2 BwPreferences (org.bedework.calfacade.svc.BwPreferences)1 EntityQueuedEvent (org.bedework.sysevents.events.EntityQueuedEvent)1 MillisecsEvent (org.bedework.sysevents.events.MillisecsEvent)1 ScheduleUpdateEvent (org.bedework.sysevents.events.ScheduleUpdateEvent)1 Attribute (org.bedework.sysevents.events.SysEventBase.Attribute)1 TimedEvent (org.bedework.sysevents.events.TimedEvent)1 UrlHandler (org.bedework.webdav.servlet.shared.UrlHandler)1 WebdavException (org.bedework.webdav.servlet.shared.WebdavException)1 WebdavForbidden (org.bedework.webdav.servlet.shared.WebdavForbidden)1 WebdavUnauthorized (org.bedework.webdav.servlet.shared.WebdavUnauthorized)1