public void addSessionListener(SessionListener listener, boolean addDeltaRequest) { lock(); try { super.addSessionListener(listener); if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) { deltaRequest.addSessionListener(listener); } } finally { unlock(); } }
public void removeSessionListener(SessionListener listener, boolean addDeltaRequest) { lock(); try { super.removeSessionListener(listener); if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) { deltaRequest.removeSessionListener(listener); } } finally { unlock(); } }
/** * 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); } }
/** * 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); } }
/** * Add a session event listener to this component. */ public void addSessionListener(SessionListener listener) { synchronized (listeners) { listeners.add(listener); } }
/** * Remove a session event listener from this component. */ public void removeSessionListener(SessionListener listener) { synchronized (listeners) { listeners.remove(listener); } }
/** * 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); }
/** * 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); } }
@Override public void addSessionListener(SessionListener listener) { addSessionListener(listener, true); }
@Override public void removeSessionListener(SessionListener listener) { removeSessionListener(listener, true); }
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(); }
public void addSessionListener(SessionListener listener) { addAction(TYPE_LISTENER, ACTION_SET, NAME_LISTENER ,listener); }
public void removeSessionListener(SessionListener listener) { addAction(TYPE_LISTENER, ACTION_REMOVE, NAME_LISTENER ,listener); }
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(); }
@Override protected SessionListener getSessionListener(String ssoId) { return new ClusterSingleSignOnListener(ssoId); }
@Override public void addSessionListener(SessionListener listener) { // NOOP }
@Override public void removeSessionListener(SessionListener listener) { // NOOP }
/** * 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>(); } }
protected SessionListener getSessionListener(String ssoId) { return new SingleSignOnListener(ssoId); }