Package org.apache.cocoon.sunshine.context

Examples of org.apache.cocoon.sunshine.context.SessionContext


        if (name != null) {
            isAuthenticated = false;

            // get the session context
            // if no session context: not authenticated
            SessionContext context = this.getSunRiseSessionContext(false);
            if (context != null) {
                synchronized(context) {

                    try {
                        // is result in cache (= context attribute)
                        if (context.getAttribute("SUNRISE_ISAUTHENTICATED:" + name) != null) {
                            isAuthenticated = true;
                        } else {
                            DocumentFragment id = context.getXML("/" + name + "/authentication/ID");
                            isAuthenticated = (id != null);
                            if (isAuthenticated == true) {
                                // cache result
                                context.setAttribute("SUNRISE_ISAUTHENTICATED:" + name, "YES");
                            }
                        }
                    } catch (ProcessingException local) {
                        // ignore this for now
                        this.getLogger().error("isAuthenticated");
View Full Code Here


                    }
                    // create session object if necessary, context etc and get it
                    if (this.getLogger().isDebugEnabled() == true) {
                        this.getLogger().debug("creating session");
                    }
                    SessionContext context = this.getSunRiseSessionContext(true);
                    if (this.getLogger().isDebugEnabled() == true) {
                        this.getLogger().debug("session created");
                    }
                    synchronized(context) {
                        // add special nodes to the authentication block:
                        // useragent, type and media
                        Element specialElement;
                        Text    specialValue;
                        Element authNode;

                        authNode = (Element)authenticationFragment.getFirstChild();
                        specialElement = authenticationFragment.getOwnerDocument().createElementNS(null, "useragent");
                        specialValue = authenticationFragment.getOwnerDocument().createTextNode(request.getHeader("User-Agent"));
                        specialElement.appendChild(specialValue);
                        authNode.appendChild(specialElement);

                        specialElement = authenticationFragment.getOwnerDocument().createElementNS(null, "type");
                        specialValue = authenticationFragment.getOwnerDocument().createTextNode("sunrise");
                        specialElement.appendChild(specialValue);
                        authNode.appendChild(specialElement);

                        specialElement = authenticationFragment.getOwnerDocument().createElementNS(null, "media");
                        specialValue = authenticationFragment.getOwnerDocument().createTextNode(this.mediaType);
                        specialElement.appendChild(specialValue);
                        authNode.appendChild(specialElement);

                        // store the authentication data in the context
                        context.setXML("/" + myHandler.getName(), authenticationFragment);

                        // Now create the return value for this method:
                        // <code>null</code>
                        authenticationFragment = null;
View Full Code Here

    throws ProcessingException {
        // synchronized
        if (this.getLogger().isDebugEnabled() == true) {
            this.getLogger().debug("BEGIN getSunRiseSessionContext create=" + create);
        }
        SessionContext context = null;

        Session session = this.getSunShineComponent().getSession(create);
        if (session != null) {
            synchronized(session) {
                context = (SessionContext)session.getAttribute(Constants.SESSION_ATTRIBUTE_CONTEXT_NAME);
                if (context == null && create == true) {
                    context = new SimpleSessionContext();
                    context.setup(Constants.SESSION_CONTEXT_NAME, null, null);
                    session.setAttribute(Constants.SESSION_ATTRIBUTE_CONTEXT_NAME, context);
                }
            }
        }
View Full Code Here

        // synchronized via context
        if (this.getLogger().isDebugEnabled() == true) {
            this.getLogger().debug("BEGIN logout handler=" + logoutHandlerName +
                                   ", mode="+mode);
        }
        SessionContext context = this.getSunRiseSessionContext(false);

        if (context != null && logoutHandlerName != null) {

            // cached?
            if (context.getAttribute("SUNRISE_ISAUTHENTICATED:" + logoutHandlerName) != null) {
                context.setAttribute("SUNRISE_ISAUTHENTICATED:" + logoutHandlerName, null);
            }
            // remove context
            context.removeXML(logoutHandlerName);
            ((SessionContextImpl)this.getSunShineComponent().getContext(Constants.SESSION_CONTEXT_NAME)).cleanParametersCache(logoutHandlerName);
            Handler logoutHandler = (Handler)this.getHandler(logoutHandlerName);

            // reset application load status
            logoutHandler.setApplicationsLoaded(context, false);
            Iterator apps = logoutHandler.getApplications().values().iterator();
            ApplicationHandler current;
            while (apps.hasNext() == true) {
                current = (ApplicationHandler)apps.next();
                current.setIsLoaded(context, false);
            }

            final List handlerContexts = logoutHandler.getHandlerContexts();
            final Iterator iter = handlerContexts.iterator();
            while ( iter.hasNext() ) {
                final SessionContext deleteContext = (SessionContext) iter.next();
                this.getSunShineComponent().deleteContext( deleteContext.getName() );
            }
            logoutHandler.clearHandlerContexts();
        }

        if ( mode != null && mode.equalsIgnoreCase("terminateSession") ) {
View Full Code Here

        // synchronized
        if (this.getLogger().isDebugEnabled() == true) {
            this.getLogger().debug("BEGIN createHandlerContext name="+name);
        }

        SessionContext context = null;

        if (this.handler != null) {

            final Session session = this.getSunShineComponent().getSession(false);
            synchronized(session) {
View Full Code Here

        // synchronized
        if (this.handler == null) {
            return new SourceParameters();
        }
        if (path == null) {
            SessionContext context = this.getSunRiseSessionContext(false);
            SourceParameters pars = (SourceParameters)context.getAttribute("cachedparameters_" + this.handler.getName());
            if (pars == null) {
                 pars = this.createParameters(null, this.handlerName, path, this.applicationName);
                 context.setAttribute("cachedparameters_" + this.handler.getName(), pars);
            }
            return pars;
        }
        return this.createParameters(null, this.handlerName, path, this.applicationName);
    }
View Full Code Here

    throws ProcessingException {
        if (this.handler == null) {
            // this is only a fallback
            return new HashMap();
        }
        SessionContext context = this.getSunRiseSessionContext(false);
        Map map = (Map)context.getAttribute("cachedmap_" + this.handler.getName());
        if (map == null) {
            map = new HashMap();
            Parameters pars = this.createParameters(null).getFirstParameters();
            String[] names = pars.getNames();
            if (names != null) {
                String key;
                String value;
                for(int i=0;i<names.length;i++) {
                    key = names[i];
                    value = pars.getParameter(key, null);
                    if (value != null) map.put(key, value);
                }
            }
            context.setAttribute("cachedmap_" + this.handler.getName(), map);
        }
        return map;
    }
View Full Code Here

        }
        if (name == null) {
            throw new IllegalArgumentException("sunShine.createContext: Name is required");
        }

        SessionContext context;
        synchronized(session) {
            // test for reserved context
            if (SunShine.isReservedContextName(name) == true) {
                throw new ProcessingException("SessionContext with name " + name + " is reserved and cannot be created manually.");
            }

            Map contexts = this.getSessionContexts();
            if (this.existsContext(name) == true) {
                context = this.getContext(name);
            } else {
                context = new SimpleSessionContext();
                Resource loadResource = (loadURI == null) ? null : new Resource(this.resolver, loadURI);
                Resource saveResource = (saveURI == null) ? null : new Resource(this.resolver, saveURI);
                context.setup(name, loadResource, saveResource);
                contexts.put(name, context);
                this.getSessionContextsTransactionStates().put(context, new TransactionState());
            }
        }
        if (this.getLogger().isDebugEnabled() == true) {
View Full Code Here

        }

        synchronized(session) {
            final Map contexts = this.getSessionContexts();
            if (contexts.containsKey(name) == true) {
                SessionContext context = (SessionContext)contexts.get(name);
                contexts.remove(name);
                this.getSessionContextsTransactionStates().remove(context);
            }
        }
View Full Code Here

        }
        if (path == null) {
            throw new IllegalArgumentException("sunShine.getContextFragment: Path is required");
        }

        SessionContext context;
        if (SunShine.isReservedContextName(contextName) == true) {
            context = this.getReservedContext(contextName);
        } else {
            Session session = this.getSession(false);
            if (session == null) {
                throw new IllegalArgumentException("sunShine.getContextFragment: Session is required for context " + contextName);
            }
            context = this.getContext(contextName);
        }
        if (context == null) {
            throw new IllegalArgumentException("sunShine.getContextFragment: Context '" + contextName + "' not found.");
        }

        DocumentFragment frag;
        frag = context.getXML(path);

        if (this.getLogger().isDebugEnabled() == true) {
            this.getLogger().debug("END getContextFragment documentFragment=" + (frag == null ? "null" : XMLUtils.serializeNodeToXML(frag)));
        }
        return frag;
View Full Code Here

TOP

Related Classes of org.apache.cocoon.sunshine.context.SessionContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.