org.springframework.boot.context.embedded.EmbeddedServletContainer#org.apache.catalina.Manager源码实例Demo

下面列出了org.springframework.boot.context.embedded.EmbeddedServletContainer#org.apache.catalina.Manager 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Tomcat8-Source-Read   文件: JvmRouteBinderValve.java
/**
 * Detect possible the JVMRoute change at cluster backup node..
 *
 * @param request
 *            tomcat request being processed
 * @param response
 *            tomcat response being processed
 * @exception IOException
 *                if an input/output error has occurred
 * @exception ServletException
 *                if a servlet error has occurred
 */
@Override
public void invoke(Request request, Response response) throws IOException,
        ServletException {

     if (getEnabled() &&
             request.getContext() != null &&
             request.getContext().getDistributable() &&
             !request.isAsyncDispatching()) {
         // valve cluster can access manager - other cluster handle turnover
         // at host level - hopefully!
         Manager manager = request.getContext().getManager();

         if (manager != null && (
                 (manager instanceof ClusterManager
                   && getCluster() != null
                   && getCluster().getManager(((ClusterManager)manager).getName()) != null)
                 ||
                 (manager instanceof PersistentManager))) {
            handlePossibleTurnover(request);
        }
    }
    // Pass this request on to the next valve in our pipeline
    getNext().invoke(request, response);
}
 
源代码2 项目: Tomcat8-Source-Read   文件: SimpleTcpCluster.java
@Override
public void registerManager(Manager manager) {

    if (! (manager instanceof ClusterManager)) {
        log.warn(sm.getString("simpleTcpCluster.clustermanager.notImplement", manager));
        return;
    }
    ClusterManager cmanager = (ClusterManager) manager;
    // Notify our interested LifecycleListeners
    fireLifecycleEvent(BEFORE_MANAGERREGISTER_EVENT, manager);
    String clusterName = getManagerName(cmanager.getName(), manager);
    cmanager.setName(clusterName);
    cmanager.setCluster(this);

    managers.put(clusterName, cmanager);
    // Notify our interested LifecycleListeners
    fireLifecycleEvent(AFTER_MANAGERREGISTER_EVENT, manager);
}
 
源代码3 项目: tomcatsrc   文件: SingleSignOnListener.java
@Override
public void sessionEvent(SessionEvent event) {
    if (!Session.SESSION_DESTROYED_EVENT.equals(event.getType())) {
        return;
    }

    Session session = event.getSession();
    Manager manager = session.getManager();
    if (manager == null) {
        return;
    }
    Context context = (Context) manager.getContainer();
    Authenticator authenticator = context.getAuthenticator();
    if (!(authenticator instanceof AuthenticatorBase)) {
        return;
    }
    SingleSignOn sso = ((AuthenticatorBase) authenticator).sso;
    if (sso == null) {
        return;
    }
    sso.sessionDestroyed(ssoId, session);
}
 
源代码4 项目: Tomcat8-Source-Read   文件: Request.java
/**
 * Changes the session ID of the session associated with this request.
 *
 * @return the old session ID before it was changed
 * @see javax.servlet.http.HttpSessionIdListener
 * @since Servlet 3.1
 */
@Override
public String changeSessionId() {

    Session session = this.getSessionInternal(false);
    if (session == null) {
        throw new IllegalStateException(
            sm.getString("coyoteRequest.changeSessionId"));
    }

    Manager manager = this.getContext().getManager();
    manager.changeSessionId(session);

    String newSessionId = session.getId();
    this.changeSessionId(newSessionId);

    return newSessionId;
}
 
@Override
public void sessionEvent(SessionEvent event) {
    if (!Session.SESSION_DESTROYED_EVENT.equals(event.getType())) {
        return;
    }

    Session session = event.getSession();
    Manager manager = session.getManager();
    if (manager == null) {
        return;
    }
    Context context = manager.getContext();
    Authenticator authenticator = context.getAuthenticator();
    if (!(authenticator instanceof AuthenticatorBase)) {
        return;
    }
    SingleSignOn sso = ((AuthenticatorBase) authenticator).sso;
    if (sso == null) {
        return;
    }
    sso.sessionDestroyed(ssoId, session);
}
 
源代码6 项目: flex-blazeds   文件: Tomcat7Valve.java
static Session getSession(Request request, boolean create) 
{

    HttpServletRequest hreq = (HttpServletRequest)request.getRequest();
    HttpSession hses = hreq.getSession(create);

    if (hses == null)
        return null;

    Manager manager = request.getContext().getManager();
    if (manager == null)
        return null;

    try 
    {
        return manager.findSession(hses.getId());
    }
    catch (IOException e) 
    {
        Log.getLogger(LogCategories.SECURITY).error("Error in TomcatValve getting session id " + hses.getId() + " : " + ExceptionUtil.toString(e));
        return null;
    }
}
 
源代码7 项目: Tomcat7.0.67   文件: JvmRouteBinderValve.java
/**
 * Detect possible the JVMRoute change at cluster backup node..
 * 
 * @param request
 *            tomcat request being processed
 * @param response
 *            tomcat response being processed
 * @exception IOException
 *                if an input/output error has occurred
 * @exception ServletException
 *                if a servlet error has occurred
 */
@Override
public void invoke(Request request, Response response) throws IOException,
        ServletException {

     if (getEnabled() &&
             request.getContext() != null &&
             request.getContext().getDistributable() &&
             !request.isAsyncDispatching()) {
         // valve cluster can access manager - other cluster handle turnover 
         // at host level - hopefully!
         Manager manager = request.getContext().getManager();

         if (manager != null && (
                 (manager instanceof ClusterManager
                   && getCluster() != null
                   && getCluster().getManager(((ClusterManager)manager).getName()) != null)
                 ||
                 (manager instanceof PersistentManager)))
             handlePossibleTurnover(request);
    }
    // Pass this request on to the next valve in our pipeline
    getNext().invoke(request, response);
}
 
源代码8 项目: Tomcat7.0.67   文件: SimpleTcpCluster.java
/**
 * Create new Manager without add to cluster (comes with start the manager)
 * 
 * @param name
 *            Context Name of this manager
 * @see org.apache.catalina.Cluster#createManager(java.lang.String)
 * @see DeltaManager#start()
 */
@Override
public synchronized Manager createManager(String name) {
    if (log.isDebugEnabled()) {
        log.debug("Creating ClusterManager for context " + name +
                " using class " + getManagerTemplate().getClass().getName());
    }
    ClusterManager manager = null;
    try {
        manager = managerTemplate.cloneFromTemplate();
        manager.setName(name);
    } catch (Exception x) {
        log.error("Unable to clone cluster manager, defaulting to org.apache.catalina.ha.session.DeltaManager", x);
        manager = new org.apache.catalina.ha.session.DeltaManager();
    } finally {
        if ( manager != null) manager.setCluster(this);
    }
    return manager;
}
 
源代码9 项目: Tomcat7.0.67   文件: SimpleTcpCluster.java
@Override
public void registerManager(Manager manager) {

    if (! (manager instanceof ClusterManager)) {
        log.warn("Manager [ " + manager + "] does not implement ClusterManager, addition to cluster has been aborted.");
        return;
    }
    ClusterManager cmanager = (ClusterManager) manager ;
    cmanager.setDistributable(true);
    // Notify our interested LifecycleListeners
    fireLifecycleEvent(BEFORE_MANAGERREGISTER_EVENT, manager);
    String clusterName = getManagerName(cmanager.getName(), manager);
    cmanager.setName(clusterName);
    cmanager.setCluster(this);

    managers.put(clusterName, cmanager);
    // Notify our interested LifecycleListeners
    fireLifecycleEvent(AFTER_MANAGERREGISTER_EVENT, manager);    
}
 
源代码10 项目: flex-blazeds   文件: TomcatValve4150.java
static Session getSession(HttpRequest request, boolean create) 
{

    HttpServletRequest hreq =
        (HttpServletRequest) request.getRequest();

    HttpSession hses = hreq.getSession(create);

    if (hses == null)
        return (null);
    Manager manager = request.getContext().getManager();

    if (manager == null)
        return (null);
    else 
    {
        try 
        {
            return (manager.findSession(hses.getId()));
        } catch (IOException e) 
        {
            Log.getLogger(LogCategories.SECURITY).error("Error in TomcatValve getting session id " + hses.getId() + " : " + ExceptionUtil.toString(e));
            return (null);
        }
    }
}
 
源代码11 项目: tomcatsrc   文件: SimpleTcpCluster.java
@Override
public void registerManager(Manager manager) {

    if (! (manager instanceof ClusterManager)) {
        log.warn("Manager [ " + manager + "] does not implement ClusterManager, addition to cluster has been aborted.");
        return;
    }
    ClusterManager cmanager = (ClusterManager) manager;
    // Notify our interested LifecycleListeners
    fireLifecycleEvent(BEFORE_MANAGERREGISTER_EVENT, manager);
    String clusterName = getManagerName(cmanager.getName(), manager);
    cmanager.setName(clusterName);
    cmanager.setCluster(this);

    managers.put(clusterName, cmanager);
    // Notify our interested LifecycleListeners
    fireLifecycleEvent(AFTER_MANAGERREGISTER_EVENT, manager);    
}
 
源代码12 项目: tomcatsrc   文件: JvmRouteBinderValve.java
/**
 * Detect possible the JVMRoute change at cluster backup node..
 * 
 * @param request
 *            tomcat request being processed
 * @param response
 *            tomcat response being processed
 * @exception IOException
 *                if an input/output error has occurred
 * @exception ServletException
 *                if a servlet error has occurred
 */
@Override
public void invoke(Request request, Response response) throws IOException,
        ServletException {

     if (getEnabled() &&
             request.getContext() != null &&
             request.getContext().getDistributable() &&
             !request.isAsyncDispatching()) {
         // valve cluster can access manager - other cluster handle turnover 
         // at host level - hopefully!
         Manager manager = request.getContext().getManager();

         if (manager != null && (
                 (manager instanceof ClusterManager
                   && getCluster() != null
                   && getCluster().getManager(((ClusterManager)manager).getName()) != null)
                 ||
                 (manager instanceof PersistentManager)))
             handlePossibleTurnover(request);
    }
    // Pass this request on to the next valve in our pipeline
    getNext().invoke(request, response);
}
 
源代码13 项目: Tomcat8-Source-Read   文件: JvmRouteBinderValve.java
/**
 * get jvmroute from engine
 *
 * @param request current request
 * @return return jvmRoute from ManagerBase or null
 */
protected String getLocalJvmRoute(Request request) {
    Manager manager = getManager(request);
    if(manager instanceof ManagerBase) {
        return ((ManagerBase) manager).getJvmRoute();
    }
    return null ;
}
 
源代码14 项目: Tomcat8-Source-Read   文件: JvmRouteBinderValve.java
/**
 * get ClusterManager
 *
 * @param request current request
 * @return manager or null
 */
protected Manager getManager(Request request) {
    Manager manager = request.getContext().getManager();
    if (log.isDebugEnabled()) {
        if(manager != null) {
            log.debug(sm.getString("jvmRoute.foundManager", manager,  request.getContext().getName()));
        } else {
            log.debug(sm.getString("jvmRoute.notFoundManager", request.getContext().getName()));
        }
    }
    return manager;
}
 
源代码15 项目: Tomcat8-Source-Read   文件: ReplicationValve.java
/**
 * Mark Request that processed at primary node with attribute
 * primaryIndicatorName
 *
 * @param request The Servlet request
 * @throws IOException IO error finding session
 */
protected void createPrimaryIndicator(Request request) throws IOException {
    String id = request.getRequestedSessionId();
    if ((id != null) && (id.length() > 0)) {
        Manager manager = request.getContext().getManager();
        Session session = manager.findSession(id);
        if (session instanceof ClusterSession) {
            ClusterSession cses = (ClusterSession) session;
            if (log.isDebugEnabled()) {
                log.debug(sm.getString(
                        "ReplicationValve.session.indicator", request.getContext().getName(),id,
                        primaryIndicatorName,
                        Boolean.valueOf(cses.isPrimarySession())));
            }
            request.setAttribute(primaryIndicatorName, cses.isPrimarySession()?Boolean.TRUE:Boolean.FALSE);
        } else {
            if (log.isDebugEnabled()) {
                if (session != null) {
                    log.debug(sm.getString(
                            "ReplicationValve.session.found", request.getContext().getName(),id));
                } else {
                    log.debug(sm.getString(
                            "ReplicationValve.session.invalid", request.getContext().getName(),id));
                }
            }
        }
    }
}
 
源代码16 项目: redisson   文件: UpdateValve.java
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
    if (getNext() == null) {
        return;
    }

    //check if we already filtered/processed this request 
    if (request.getNote(ALREADY_FILTERED_NOTE) == null) {
        request.setNote(ALREADY_FILTERED_NOTE, Boolean.TRUE);
        try {
            getNext().invoke(request, response);
        } finally {
            request.removeNote(ALREADY_FILTERED_NOTE);
            final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            try {
                ClassLoader applicationClassLoader = request.getContext().getLoader().getClassLoader();
                Thread.currentThread().setContextClassLoader(applicationClassLoader);
                Manager manager = request.getContext().getManager();
                ((RedissonSessionManager)manager).store(request.getSession(false));
            } finally {
                Thread.currentThread().setContextClassLoader(classLoader);
            }
        }
    } else {
        getNext().invoke(request, response);
    }
}
 
源代码17 项目: Tomcat8-Source-Read   文件: SimpleTcpCluster.java
/**
 * Remove an application from cluster replication bus.
 *
 * @param manager The manager
 * @see org.apache.catalina.Cluster#removeManager(Manager)
 */
@Override
public void removeManager(Manager manager) {
    if (manager instanceof ClusterManager) {
        ClusterManager cmgr = (ClusterManager) manager;
        // Notify our interested LifecycleListeners
        fireLifecycleEvent(BEFORE_MANAGERUNREGISTER_EVENT,manager);
        managers.remove(getManagerName(cmgr.getName(),manager));
        cmgr.setCluster(null);
        // Notify our interested LifecycleListeners
        fireLifecycleEvent(AFTER_MANAGERUNREGISTER_EVENT, manager);
    }
}
 
源代码18 项目: Tomcat8-Source-Read   文件: SimpleTcpCluster.java
@Override
public String getManagerName(String name, Manager manager) {
    String clusterName = name ;
    if (clusterName == null) clusterName = manager.getContext().getName();
    if (getContainer() instanceof Engine) {
        Context context = manager.getContext();
        Container host = context.getParent();
        if (host instanceof Host && clusterName != null &&
                !(clusterName.startsWith(host.getName() +"#"))) {
            clusterName = host.getName() +"#" + clusterName ;
        }
    }
    return clusterName;
}
 
源代码19 项目: redisson   文件: UpdateValve.java
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
    if (getNext() == null) {
        return;
    }

    //check if we already filtered/processed this request
    if (request.getNote(ALREADY_FILTERED_NOTE) == null) {
        request.setNote(ALREADY_FILTERED_NOTE, Boolean.TRUE);
        try {
            getNext().invoke(request, response);
        } finally {
            request.removeNote(ALREADY_FILTERED_NOTE);
            final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            try {
                ClassLoader applicationClassLoader = request.getContext().getLoader().getClassLoader();
                Thread.currentThread().setContextClassLoader(applicationClassLoader);
                Manager manager = request.getContext().getManager();
                ((RedissonSessionManager)manager).store(request.getSession(false));
            } finally {
                Thread.currentThread().setContextClassLoader(classLoader);
            }
        }
    } else {
        getNext().invoke(request, response);
    }
}
 
源代码20 项目: session-managers   文件: RedisStore.java
@Override
public Manager getManager() {
    return this.lockTemplate.withReadLock(new LockTemplate.LockedOperation<Manager>() {

        @Override
        public Manager invoke() {
            return RedisStore.this.manager;
        }

    });
}
 
源代码21 项目: Tomcat8-Source-Read   文件: SingleSignOn.java
private void expire(SingleSignOnSessionKey key) {
    if (engine == null) {
        containerLog.warn(sm.getString("singleSignOn.sessionExpire.engineNull", key));
        return;
    }
    Container host = engine.findChild(key.getHostName());
    if (host == null) {
        containerLog.warn(sm.getString("singleSignOn.sessionExpire.hostNotFound", key));
        return;
    }
    Context context = (Context) host.findChild(key.getContextName());
    if (context == null) {
        containerLog.warn(sm.getString("singleSignOn.sessionExpire.contextNotFound", key));
        return;
    }
    Manager manager = context.getManager();
    if (manager == null) {
        containerLog.warn(sm.getString("singleSignOn.sessionExpire.managerNotFound", key));
        return;
    }
    Session session = null;
    try {
        session = manager.findSession(key.getSessionId());
    } catch (IOException e) {
        containerLog.warn(sm.getString("singleSignOn.sessionExpire.managerError", key), e);
        return;
    }
    if (session == null) {
        containerLog.warn(sm.getString("singleSignOn.sessionExpire.sessionNotFound", key));
        return;
    }
    session.expire();
}
 
/**
 * Returns true if the request specifies a JSESSIONID that is valid within
 * the context of this ApplicationHttpRequest, false otherwise.
 *
 * @return true if the request specifies a JSESSIONID that is valid within
 * the context of this ApplicationHttpRequest, false otherwise.
 */
@Override
public boolean isRequestedSessionIdValid() {

    if (crossContext) {

        String requestedSessionId = getRequestedSessionId();
        if (requestedSessionId == null)
            return false;
        if (context == null)
            return false;
        Manager manager = context.getManager();
        if (manager == null)
            return false;
        Session session = null;
        try {
            session = manager.findSession(requestedSessionId);
        } catch (IOException e) {
            // Ignore
        }
        if ((session != null) && session.isValid()) {
            return true;
        } else {
            return false;
        }

    } else {
        return super.isRequestedSessionIdValid();
    }
}
 
源代码23 项目: che   文件: MetricsServletModule.java
@Override
protected void configureServlets() {
  Multibinder<MeterBinder> meterMultibinder =
      Multibinder.newSetBinder(binder(), MeterBinder.class);
  meterMultibinder.addBinding().toProvider(TomcatMetricsProvider.class);

  bind(Manager.class).toInstance(getManager(getServletContext()));
  filter("/*").through(ApiResponseMetricFilter.class);
}
 
@Override
public void setManager(Manager manager) {
	if (manager instanceof ManagerBase) {
		manager.setSessionIdGenerator(new LazySessionIdGenerator());
	}
	super.setManager(manager);
}
 
源代码25 项目: foremast   文件: TomcatMetricsBinder.java
private Manager findManager(ApplicationContext applicationContext) {
    if (applicationContext instanceof EmbeddedWebApplicationContext) {
        EmbeddedServletContainer container = ((EmbeddedWebApplicationContext) applicationContext).getEmbeddedServletContainer();
        if (container instanceof TomcatEmbeddedServletContainer) {
            Context context = findContext((TomcatEmbeddedServletContainer) container);
            if (context != null) {
                return context.getManager();
            }
        }
    }
    return null;
}
 
源代码26 项目: micrometer   文件: TomcatMetrics.java
private void registerSessionMetrics(MeterRegistry registry) {
    if (manager == null) {
        // If the binder is created but unable to find the session manager don't register those metrics
        return;
    }

    Gauge.builder("tomcat.sessions.active.max", manager, Manager::getMaxActive)
            .tags(tags)
            .baseUnit(BaseUnits.SESSIONS)
            .register(registry);

    Gauge.builder("tomcat.sessions.active.current", manager, Manager::getActiveSessions)
            .tags(tags)
            .baseUnit(BaseUnits.SESSIONS)
            .register(registry);

    FunctionCounter.builder("tomcat.sessions.created", manager, Manager::getSessionCounter)
            .tags(tags)
            .baseUnit(BaseUnits.SESSIONS)
            .register(registry);

    FunctionCounter.builder("tomcat.sessions.expired", manager, Manager::getExpiredSessions)
            .tags(tags)
            .baseUnit(BaseUnits.SESSIONS)
            .register(registry);

    FunctionCounter.builder("tomcat.sessions.rejected", manager, Manager::getRejectedSessions)
            .tags(tags)
            .baseUnit(BaseUnits.SESSIONS)
            .register(registry);

    TimeGauge.builder("tomcat.sessions.alive.max", manager, TimeUnit.SECONDS, Manager::getSessionMaxAliveTime)
            .tags(tags)
            .register(registry);
}
 
源代码27 项目: Tomcat7.0.67   文件: JvmRouteBinderValve.java
/**
 * get jvmroute from engine
 * 
 * @param request current request
 * @return return jvmRoute from ManagerBase or null
 */
protected String getLocalJvmRoute(Request request) {
    Manager manager = getManager(request);
    if(manager instanceof ManagerBase)
        return ((ManagerBase) manager).getJvmRoute();
    return null ;
}
 
源代码28 项目: Tomcat7.0.67   文件: ReplicationValve.java
/**
 * Mark Request that processed at primary node with attribute
 * primaryIndicatorName
 * 
 * @param request
 * @throws IOException
 */
protected void createPrimaryIndicator(Request request) throws IOException {
    String id = request.getRequestedSessionId();
    if ((id != null) && (id.length() > 0)) {
        Manager manager = request.getContext().getManager();
        Session session = manager.findSession(id);
        if (session instanceof ClusterSession) {
            ClusterSession cses = (ClusterSession) session;
            if (log.isDebugEnabled())
                log.debug(sm.getString(
                        "ReplicationValve.session.indicator", request.getContext().getName(),id,
                        primaryIndicatorName,
                        Boolean.valueOf(cses.isPrimarySession())));
            request.setAttribute(primaryIndicatorName, cses.isPrimarySession()?Boolean.TRUE:Boolean.FALSE);
        } else {
            if (log.isDebugEnabled()) {
                if (session != null) {
                    log.debug(sm.getString(
                            "ReplicationValve.session.found", request.getContext().getName(),id));
                } else {
                    log.debug(sm.getString(
                            "ReplicationValve.session.invalid", request.getContext().getName(),id));
                }
            }
        }
    }
}
 
源代码29 项目: tomcatsrc   文件: StandardSession.java
/**
 * Construct a new Session associated with the specified Manager.
 *
 * @param manager The manager with which this Session is associated
 */
public StandardSession(Manager manager) {

    super();
    this.manager = manager;

    // Initialize access count
    if (ACTIVITY_CHECK) {
        accessCount = new AtomicInteger();
    }

}
 
源代码30 项目: redisson   文件: UpdateValve.java
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
    if (getNext() == null) {
        return;
    }

    //check if we already filtered/processed this request
    if (request.getNote(ALREADY_FILTERED_NOTE) == null) {
        request.setNote(ALREADY_FILTERED_NOTE, Boolean.TRUE);
        try {
            getNext().invoke(request, response);
        } finally {
            request.removeNote(ALREADY_FILTERED_NOTE);
            final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            try {
                ClassLoader applicationClassLoader = request.getContext().getLoader().getClassLoader();
                Thread.currentThread().setContextClassLoader(applicationClassLoader);
                Manager manager = request.getContext().getManager();
                ((RedissonSessionManager)manager).store(request.getSession(false));
            } finally {
                Thread.currentThread().setContextClassLoader(classLoader);
            }
        }
    } else {
        getNext().invoke(request, response);
    }
}