Java 类org.apache.catalina.SessionListener 实例源码

项目:tomcat7    文件:DeltaSession.java   
public void addSessionListener(SessionListener listener, boolean addDeltaRequest) {
    lock();
    try {
        super.addSessionListener(listener);
        if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) {
            deltaRequest.addSessionListener(listener);
        }
    } finally {
        unlock();
    }
}
项目:tomcat7    文件:DeltaSession.java   
public void removeSessionListener(SessionListener listener, boolean addDeltaRequest) {
    lock();
    try {
        super.removeSessionListener(listener);
        if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) {
            deltaRequest.removeSessionListener(listener);
        }
    } finally {
        unlock();
    }
}
项目:tomcat7    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {
    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = listeners.toArray(list);
    }

    for (int i = 0; i < list.length; i++){
        (list[i]).sessionEvent(event);
    }

}
项目:lams    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {
    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = (SessionListener[]) listeners.toArray(list);
    }

    for (int i = 0; i < list.length; i++){
        ((SessionListener) list[i]).sessionEvent(event);
    }

}
项目:jerrydog    文件:StandardSession.java   
/**
 * Add a session event listener to this component.
 */
public void addSessionListener(SessionListener listener) {

    synchronized (listeners) {
        listeners.add(listener);
    }

}
项目:jerrydog    文件:StandardSession.java   
/**
 * Remove a session event listener from this component.
 */
public void removeSessionListener(SessionListener listener) {

    synchronized (listeners) {
        listeners.remove(listener);
    }

}
项目:jerrydog    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {

    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = (SessionListener[]) listeners.toArray(list);
    }
    for (int i = 0; i < list.length; i++)
        ((SessionListener) list[i]).sessionEvent(event);

}
项目:apache-tomcat-7.0.73-with-comment    文件:DeltaSession.java   
public void addSessionListener(SessionListener listener, boolean addDeltaRequest) {
    lock();
    try {
        super.addSessionListener(listener);
        if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) {
            deltaRequest.addSessionListener(listener);
        }
    } finally {
        unlock();
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:DeltaSession.java   
public void removeSessionListener(SessionListener listener, boolean addDeltaRequest) {
    lock();
    try {
        super.removeSessionListener(listener);
        if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) {
            deltaRequest.removeSessionListener(listener);
        }
    } finally {
        unlock();
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {
    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = listeners.toArray(list);
    }

    for (int i = 0; i < list.length; i++){
        (list[i]).sessionEvent(event);
    }

}
项目:lazycat    文件:DeltaSession.java   
public void addSessionListener(SessionListener listener, boolean addDeltaRequest) {
    lock();
    try {
        super.addSessionListener(listener);
        if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) {
            deltaRequest.addSessionListener(listener);
        }
    } finally {
        unlock();
    }
}
项目:lazycat    文件:DeltaSession.java   
public void removeSessionListener(SessionListener listener, boolean addDeltaRequest) {
    lock();
    try {
        super.removeSessionListener(listener);
        if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) {
            deltaRequest.removeSessionListener(listener);
        }
    } finally {
        unlock();
    }
}
项目:lazycat    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has occurred
 * for this Session. The default implementation performs this notification
 * synchronously using the calling thread.
 *
 * @param type
 *            Event type
 * @param data
 *            Event data
 */
public void fireSessionEvent(String type, Object data) {
    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = listeners.toArray(list);
    }

    for (int i = 0; i < list.length; i++) {
        (list[i]).sessionEvent(event);
    }

}
项目:class-guard    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {
    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = listeners.toArray(list);
    }

    for (int i = 0; i < list.length; i++){
        (list[i]).sessionEvent(event);
    }

}
项目:apache-tomcat-7.0.57    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {
    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = listeners.toArray(list);
    }

    for (int i = 0; i < list.length; i++){
        (list[i]).sessionEvent(event);
    }

}
项目:apache-tomcat-7.0.57    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {
    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = listeners.toArray(list);
    }

    for (int i = 0; i < list.length; i++){
        (list[i]).sessionEvent(event);
    }

}
项目:HowTomcatWorks    文件:StandardSession.java   
/**
 * Add a session event listener to this component.
 */
public void addSessionListener(SessionListener listener) {

    synchronized (listeners) {
        listeners.add(listener);
    }

}
项目:HowTomcatWorks    文件:StandardSession.java   
/**
 * Remove a session event listener from this component.
 */
public void removeSessionListener(SessionListener listener) {

    synchronized (listeners) {
        listeners.remove(listener);
    }

}
项目:HowTomcatWorks    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {

    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = (SessionListener[]) listeners.toArray(list);
    }
    for (int i = 0; i < list.length; i++)
        ((SessionListener) list[i]).sessionEvent(event);

}
项目:WBSAirback    文件:StandardSession.java   
/**
 * Notify all session event listeners that a particular event has
 * occurred for this Session.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param data Event data
 */
public void fireSessionEvent(String type, Object data) {
    if (listeners.size() < 1)
        return;
    SessionEvent event = new SessionEvent(this, type, data);
    SessionListener list[] = new SessionListener[0];
    synchronized (listeners) {
        list = listeners.toArray(list);
    }

    for (int i = 0; i < list.length; i++){
        (list[i]).sessionEvent(event);
    }

}
项目:tomcat7    文件:DeltaSession.java   
@Override
public void addSessionListener(SessionListener listener) {
    addSessionListener(listener, true);
}
项目:tomcat7    文件:DeltaSession.java   
@Override
public void removeSessionListener(SessionListener listener) {
    removeSessionListener(listener, true);
}
项目:tomcat7    文件:DeltaSession.java   
private void readObject(ObjectInput stream) throws ClassNotFoundException, IOException {

        // Deserialize the scalar instance variables (except Manager)
        authType = null; // Transient only
        creationTime = ( (Long) stream.readObject()).longValue();
        lastAccessedTime = ( (Long) stream.readObject()).longValue();
        maxInactiveInterval = ( (Integer) stream.readObject()).intValue();
        isNew = ( (Boolean) stream.readObject()).booleanValue();
        isValid = ( (Boolean) stream.readObject()).booleanValue();
        thisAccessedTime = ( (Long) stream.readObject()).longValue();
        version = ( (Long) stream.readObject()).longValue();
        boolean hasPrincipal = stream.readBoolean();
        principal = null;
        if (hasPrincipal) {
            principal = SerializablePrincipal.readPrincipal(stream);
        }

        //        setId((String) stream.readObject());
        id = (String) stream.readObject();
        if (log.isDebugEnabled()) log.debug(sm.getString("deltaSession.readSession", id));

        // Deserialize the attribute count and attribute values
        if (attributes == null) attributes = new ConcurrentHashMap<String, Object>();
        int n = ( (Integer) stream.readObject()).intValue();
        boolean isValidSave = isValid;
        isValid = true;
        for (int i = 0; i < n; i++) {
            String name = (String) stream.readObject();
            final Object value;
            try {
                value = stream.readObject();
            } catch (WriteAbortedException wae) {
                if (wae.getCause() instanceof NotSerializableException) {
                    // Skip non serializable attributes
                    continue;
                }
                throw wae;
            }
            // Handle the case where the filter configuration was changed while
            // the web application was stopped.
            if (exclude(name, value)) {
                continue;
            }
            attributes.put(name, value);
        }
        isValid = isValidSave;

        // Session listeners
        n = ((Integer) stream.readObject()).intValue();
        if (listeners == null || n > 0) {
            listeners = new ArrayList<SessionListener>();
        }
        for (int i = 0; i < n; i++) {
            SessionListener listener = (SessionListener) stream.readObject();
            listeners.add(listener);
        }

        if (notes == null) {
            notes = new Hashtable<String,Object>();
        }
        activate();
    }
项目:tomcat7    文件:DeltaRequest.java   
public void addSessionListener(SessionListener listener) {
    addAction(TYPE_LISTENER, ACTION_SET, NAME_LISTENER ,listener);
}
项目:tomcat7    文件:DeltaRequest.java   
public void removeSessionListener(SessionListener listener) {
    addAction(TYPE_LISTENER, ACTION_REMOVE, NAME_LISTENER ,listener);
}
项目:tomcat7    文件:DeltaRequest.java   
public void execute(DeltaSession session, boolean notifyListeners) {
    if ( !this.sessionId.equals( session.getId() ) )
        throw new java.lang.IllegalArgumentException("Session id mismatch, not executing the delta request");
    session.access();
    for ( int i=0; i<actions.size(); i++ ) {
        AttributeInfo info = actions.get(i);
        switch ( info.getType() ) {
            case TYPE_ATTRIBUTE:
                if ( info.getAction() == ACTION_SET ) {
                    if ( log.isTraceEnabled() ) log.trace("Session.setAttribute('"+info.getName()+"', '"+info.getValue()+"')");
                    session.setAttribute(info.getName(), info.getValue(),notifyListeners,false);
                }  else {
                    if ( log.isTraceEnabled() ) log.trace("Session.removeAttribute('"+info.getName()+"')");
                    session.removeAttribute(info.getName(),notifyListeners,false);
                }

                break;
            case TYPE_ISNEW:
            if ( log.isTraceEnabled() ) log.trace("Session.setNew('"+info.getValue()+"')");
                session.setNew(((Boolean)info.getValue()).booleanValue(),false);
                break;
            case TYPE_MAXINTERVAL:
                if ( log.isTraceEnabled() ) log.trace("Session.setMaxInactiveInterval('"+info.getValue()+"')");
                session.setMaxInactiveInterval(((Integer)info.getValue()).intValue(),false);
                break;
            case TYPE_PRINCIPAL:
                Principal p = null;
                if ( info.getAction() == ACTION_SET ) {
                    SerializablePrincipal sp = (SerializablePrincipal)info.getValue();
                    p = sp.getPrincipal();
                }
                session.setPrincipal(p,false);
                break;
            case TYPE_AUTHTYPE:
                String authType = null;
                if ( info.getAction() == ACTION_SET ) {
                    authType = (String)info.getValue();
                }
                session.setAuthType(authType,false);
                break;
            case TYPE_LISTENER:
                SessionListener listener = (SessionListener) info.getValue();
                if (info.getAction() == ACTION_SET) {
                    session.addSessionListener(listener,false);
                } else {
                    session.removeSessionListener(listener,false);
                }
                break;
            default :
                throw new java.lang.IllegalArgumentException("Invalid attribute info type="+info);
        }//switch
    }//for
    session.endAccess();
    reset();
}
项目:tomcat7    文件:ClusterSingleSignOn.java   
@Override
protected SessionListener getSessionListener(String ssoId) {
    return new ClusterSingleSignOnListener(ssoId);
}
项目:tomcat7    文件:DummyProxySession.java   
@Override
public void addSessionListener(SessionListener listener) {
    // NOOP
}
项目:tomcat7    文件:DummyProxySession.java   
@Override
public void removeSessionListener(SessionListener listener) {
    // NOOP
}
项目:tomcat7    文件:StandardSession.java   
/**
 * Read a serialized version of this session object from the specified
 * object input stream.
 * <p>
 * <b>IMPLEMENTATION NOTE</b>:  The reference to the owning Manager
 * is not restored by this method, and must be set explicitly.
 *
 * @param stream The input stream to read from
 *
 * @exception ClassNotFoundException if an unknown class is specified
 * @exception IOException if an input/output error occurs
 */
protected void readObject(ObjectInputStream stream)
    throws ClassNotFoundException, IOException {

    // Deserialize the scalar instance variables (except Manager)
    authType = null;        // Transient only
    creationTime = ((Long) stream.readObject()).longValue();
    lastAccessedTime = ((Long) stream.readObject()).longValue();
    maxInactiveInterval = ((Integer) stream.readObject()).intValue();
    isNew = ((Boolean) stream.readObject()).booleanValue();
    isValid = ((Boolean) stream.readObject()).booleanValue();
    thisAccessedTime = ((Long) stream.readObject()).longValue();
    principal = null;        // Transient only
    //        setId((String) stream.readObject());
    id = (String) stream.readObject();
    if (manager.getContainer().getLogger().isDebugEnabled())
        manager.getContainer().getLogger().debug
            ("readObject() loading session " + id);

    // Deserialize the attribute count and attribute values
    if (attributes == null)
        attributes = new ConcurrentHashMap<String, Object>();
    int n = ((Integer) stream.readObject()).intValue();
    boolean isValidSave = isValid;
    isValid = true;
    for (int i = 0; i < n; i++) {
        String name = (String) stream.readObject();
        final Object value;
        try {
            value = stream.readObject();
        } catch (WriteAbortedException wae) {
            if (wae.getCause() instanceof NotSerializableException) {
                String msg = sm.getString("standardSession.notDeserializable", name, id);
                if (manager.getContainer().getLogger().isDebugEnabled()) {
                    manager.getContainer().getLogger().debug(msg, wae);
                } else {
                    manager.getContainer().getLogger().warn(msg);
                }
                // Skip non serializable attributes
                continue;
            }
            throw wae;
        }
        if (manager.getContainer().getLogger().isDebugEnabled())
            manager.getContainer().getLogger().debug("  loading attribute '" + name +
                "' with value '" + value + "'");
        // Handle the case where the filter configuration was changed while
        // the web application was stopped.
        if (exclude(name, value)) {
            continue;
        }
        attributes.put(name, value);
    }
    isValid = isValidSave;

    if (listeners == null) {
        listeners = new ArrayList<SessionListener>();
    }

    if (notes == null) {
        notes = new Hashtable<String, Object>();
    }
}
项目:tomcat7    文件:SingleSignOn.java   
protected SessionListener getSessionListener(String ssoId) {
    return new SingleSignOnListener(ssoId);
}
项目:apache-tomcat-7.0.73-with-comment    文件:DeltaSession.java   
@Override
public void addSessionListener(SessionListener listener) {
    addSessionListener(listener, true);
}
项目:apache-tomcat-7.0.73-with-comment    文件:DeltaSession.java   
@Override
public void removeSessionListener(SessionListener listener) {
    removeSessionListener(listener, true);
}
项目:apache-tomcat-7.0.73-with-comment    文件:DeltaSession.java   
private void readObject(ObjectInput stream) throws ClassNotFoundException, IOException {

        // Deserialize the scalar instance variables (except Manager)
        authType = null; // Transient only
        creationTime = ( (Long) stream.readObject()).longValue();
        lastAccessedTime = ( (Long) stream.readObject()).longValue();
        maxInactiveInterval = ( (Integer) stream.readObject()).intValue();
        isNew = ( (Boolean) stream.readObject()).booleanValue();
        isValid = ( (Boolean) stream.readObject()).booleanValue();
        thisAccessedTime = ( (Long) stream.readObject()).longValue();
        version = ( (Long) stream.readObject()).longValue();
        boolean hasPrincipal = stream.readBoolean();
        principal = null;
        if (hasPrincipal) {
            principal = SerializablePrincipal.readPrincipal(stream);
        }

        //        setId((String) stream.readObject());
        id = (String) stream.readObject();
        if (log.isDebugEnabled()) log.debug(sm.getString("deltaSession.readSession", id));

        // Deserialize the attribute count and attribute values
        if (attributes == null) attributes = new ConcurrentHashMap<String, Object>();
        int n = ( (Integer) stream.readObject()).intValue();
        boolean isValidSave = isValid;
        isValid = true;
        for (int i = 0; i < n; i++) {
            String name = (String) stream.readObject();
            final Object value;
            try {
                value = stream.readObject();
            } catch (WriteAbortedException wae) {
                if (wae.getCause() instanceof NotSerializableException) {
                    // Skip non serializable attributes
                    continue;
                }
                throw wae;
            }
            // Handle the case where the filter configuration was changed while
            // the web application was stopped.
            if (exclude(name, value)) {
                continue;
            }
            attributes.put(name, value);
        }
        isValid = isValidSave;

        // Session listeners
        n = ((Integer) stream.readObject()).intValue();
        if (listeners == null || n > 0) {
            listeners = new ArrayList<SessionListener>();
        }
        for (int i = 0; i < n; i++) {
            SessionListener listener = (SessionListener) stream.readObject();
            listeners.add(listener);
        }

        if (notes == null) {
            notes = new Hashtable<String,Object>();
        }
        activate();
    }
项目:apache-tomcat-7.0.73-with-comment    文件:DeltaRequest.java   
public void addSessionListener(SessionListener listener) {
    addAction(TYPE_LISTENER, ACTION_SET, NAME_LISTENER ,listener);
}
项目:apache-tomcat-7.0.73-with-comment    文件:DeltaRequest.java   
public void removeSessionListener(SessionListener listener) {
    addAction(TYPE_LISTENER, ACTION_REMOVE, NAME_LISTENER ,listener);
}
项目:apache-tomcat-7.0.73-with-comment    文件:DeltaRequest.java   
public void execute(DeltaSession session, boolean notifyListeners) {
    if ( !this.sessionId.equals( session.getId() ) )
        throw new java.lang.IllegalArgumentException("Session id mismatch, not executing the delta request");
    session.access();
    for ( int i=0; i<actions.size(); i++ ) {
        AttributeInfo info = actions.get(i);
        switch ( info.getType() ) {
            case TYPE_ATTRIBUTE:
                if ( info.getAction() == ACTION_SET ) {
                    if ( log.isTraceEnabled() ) log.trace("Session.setAttribute('"+info.getName()+"', '"+info.getValue()+"')");
                    session.setAttribute(info.getName(), info.getValue(),notifyListeners,false);
                }  else {
                    if ( log.isTraceEnabled() ) log.trace("Session.removeAttribute('"+info.getName()+"')");
                    session.removeAttribute(info.getName(),notifyListeners,false);
                }

                break;
            case TYPE_ISNEW:
            if ( log.isTraceEnabled() ) log.trace("Session.setNew('"+info.getValue()+"')");
                session.setNew(((Boolean)info.getValue()).booleanValue(),false);
                break;
            case TYPE_MAXINTERVAL:
                if ( log.isTraceEnabled() ) log.trace("Session.setMaxInactiveInterval('"+info.getValue()+"')");
                session.setMaxInactiveInterval(((Integer)info.getValue()).intValue(),false);
                break;
            case TYPE_PRINCIPAL:
                Principal p = null;
                if ( info.getAction() == ACTION_SET ) {
                    SerializablePrincipal sp = (SerializablePrincipal)info.getValue();
                    p = sp.getPrincipal();
                }
                session.setPrincipal(p,false);
                break;
            case TYPE_AUTHTYPE:
                String authType = null;
                if ( info.getAction() == ACTION_SET ) {
                    authType = (String)info.getValue();
                }
                session.setAuthType(authType,false);
                break;
            case TYPE_LISTENER:
                SessionListener listener = (SessionListener) info.getValue();
                if (info.getAction() == ACTION_SET) {
                    session.addSessionListener(listener,false);
                } else {
                    session.removeSessionListener(listener,false);
                }
                break;
            default :
                throw new java.lang.IllegalArgumentException("Invalid attribute info type="+info);
        }//switch
    }//for
    session.endAccess();
    reset();
}
项目:apache-tomcat-7.0.73-with-comment    文件:ClusterSingleSignOn.java   
@Override
protected SessionListener getSessionListener(String ssoId) {
    return new ClusterSingleSignOnListener(ssoId);
}
项目:apache-tomcat-7.0.73-with-comment    文件:DummyProxySession.java   
@Override
public void addSessionListener(SessionListener listener) {
    // NOOP
}
项目:apache-tomcat-7.0.73-with-comment    文件:DummyProxySession.java   
@Override
public void removeSessionListener(SessionListener listener) {
    // NOOP
}