Examples of OnlineActivity


Examples of org.beangle.security.auth.session.OnlineActivity

          .getRequiredWebApplicationContext(session.getServletContext());
      monitor = (SecurityMonitor) wac.getBean("securityMonitor", SecurityMonitor.class);
    }
    // 避免login没有权限,出现死循环
    if (!freeResources.contains(resource) && !monitor.isPublicResource(resource)) {
      OnlineActivity info = monitor.getAuthenticationManager().getSessionController()
          .getOnlineActivity(session.getId());
      if (null == info) {
        Authentication auth = null;
        // remember me
        if (monitor.isEnableRememberMe()) {
          auth = monitor.getRememberMeService().autoLogin(httpRequest);
        }
        if (null == auth) {
          auth = new SsoAuthentication(httpRequest);
          auth.setDetails(userDetailsSource.buildDetails(httpRequest));
        }
        try {
          monitor.authenticate(auth);
        } catch (AuthenticationException e) {
          // 记录访问失败的URL
          session.setAttribute(PREVIOUS_URL, httpRequest.getRequestURL() + "?"
              + httpRequest.getQueryString());
          redirectTo((HttpServletRequest) request, (HttpServletResponse) response,
              loginFailPath);
          return;
        }
      } else if (info.isExpired()) {
        monitor.logout(session);
        // 记录访问失败的URL
        session.setAttribute(PREVIOUS_URL, httpRequest.getRequestURL() + "?"
            + httpRequest.getQueryString());
        redirectTo((HttpServletRequest) request, (HttpServletResponse) response,
            expiredPath);
        return;
      } else {
        info.refreshLastRequest();
        boolean pass = monitor.isAuthorized(info.getUserid(), resource);
        if (pass) {
          logger.debug("user {} access {} success", info.getPrincipal(), resource);
        } else {
          logger
              .info("user {} cannot access resource[{}]", info.getPrincipal(),
                  resource);
          redirectTo((HttpServletRequest) request, (HttpServletResponse) response,
              noAuthorityPath);
          return;
        }
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

          .getRequiredWebApplicationContext(session.getServletContext());
      manager = (SecurityManager) wac.getBean("securityManager", SecurityManager.class);
    }
    // 避免login没有权限,出现死循环
    if (!freeResources.contains(resource) && !manager.isPublicResource(resource)) {
      OnlineActivity info = manager.getAuthenticationManager().getSessionController()
          .getOnlineActivity(session.getId());
      if (null == info) {
        Authentication auth = null;
        // remember me
//        if (manager.isEnableRememberMe()) {
//          auth = manager.getRememberMeService().autoLogin(httpRequest);
//        }
        if (null == auth) {
          auth = new SsoAuthentication(httpRequest);
          auth.setDetails(userDetailsSource.buildDetails(httpRequest));
        }
        try {
          manager.authenticate(auth);
        } catch (AuthenticationException e) {
          // 记录访问失败的URL
          session.setAttribute(PREVIOUS_URL, httpRequest.getRequestURL() + "?"
              + httpRequest.getQueryString());
          redirectTo((HttpServletRequest) request, (HttpServletResponse) response,
              loginFailPath);
          return;
        }
      } else if (info.isExpired()) {
        manager.logout(session);
        // 记录访问失败的URL
        session.setAttribute(PREVIOUS_URL, httpRequest.getRequestURL() + "?"
            + httpRequest.getQueryString());
        redirectTo((HttpServletRequest) request, (HttpServletResponse) response,
            expiredPath);
        return;
      } else {
        info.refreshLastRequest();
        boolean pass = manager.isAuthorized(info.getUserid(), resource);
        if (pass) {
          logger.debug("user {} access {} success", info.getPrincipal(), resource);
        } else {
          logger.info("user {} cannot access [{}]", info.getPrincipal(), resource);
          reportNoAuthority((HttpServletRequest) request, (HttpServletResponse) response);
          return;
        }
      }
    } else {
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

      int allowableSessions, SessionRegistry registry) {
    if (exceptionIfMaximumExceeded || (sessions == null)) {
      return false;
    }
    // Determine least recently used session, and mark it for invalidation
    OnlineActivity leastRecentlyUsed = null;
    for (int i = 0; i < sessions.size(); i++) {
      if ((leastRecentlyUsed == null)
          || sessions.get(i).getLastAccessAt()
              .before(leastRecentlyUsed.getLastAccessAt())) {
        leastRecentlyUsed = (OnlineActivity) sessions.get(i);
      }
    }

    leastRecentlyUsed.expireNow();
    return true;
  }
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

  /**
   * 注销会话
   */
  public OnlineActivity removeAuthentication(String sessionId) {
    OnlineActivity info = sessionRegistry.remove(sessionId);
    if (null != info) {
      UserCategory category = info.getCategory();
      OnlineProfile profile = ((OnlineProfile) profileMap.get(category));
      profile.left();
    }
    return info;
  }
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

   * 注册用户
   */
  public void registerAuthentication(Authentication authentication) {
    WebUserDetails details = (WebUserDetails) authentication.getDetails();
    OnlineProfile profile = (OnlineProfile) profileMap.get(details.getCategory());
    OnlineActivity existed = getOnlineActivity(details.getSessionId());
    String sessionId = details.getSessionId();
    Object principal = authentication.getPrincipal();
    OnlineActivity newOne = OnlineActivityBuilder.build(principal, authentication.getDetails(),
        sessionId, new Date());
    // 原先没有的要占座
    if (null == existed) {
      if (!profile.reserve())
        throw new AuthenticationException(Authentication.ERROR_OVERMAX);
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

    }
    throw lastException;
  }

  public OnlineActivity remove(String sessionId) {
    OnlineActivity activity = sessionController.removeAuthentication(sessionId);
    if (null != activity) {
      for (AuthenticationListener listener : listeners) {
        listener.afterRemove(activity);
      }
    }
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

    if (null == sessionsUsedByPrincipal) {
      return list;
    }
    synchronized (sessionsUsedByPrincipal) {
      for (final String sessionId : sessionsUsedByPrincipal) {
        OnlineActivity activity = getOnlineActivity(sessionId);
        if (activity == null) {
          continue;
        }
        if (includeExpiredSessions || !activity.isExpired()) {
          list.add(activity);
        }
      }
    }
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

  public OnlineActivity getOnlineActivity(String sessionId) {
    return sessionIds.get(sessionId);
  }

  public void refreshLastRequest(String sessionId) {
    OnlineActivity info = getOnlineActivity(sessionId);
    if (info != null) {
      info.refreshLastRequest();
    }
  }
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

    }
    sessionsUsedByPrincipal.add(sessionId);
  }

  public void register(String sessionId, Authentication authentication) {
    OnlineActivity newOne = OnlineActivityBuilder.build(authentication.getPrincipal(),
        authentication.getDetails(), sessionId, new Date());
    register(sessionId, authentication.getPrincipal(), newOne);
  }
View Full Code Here

Examples of org.beangle.security.monitor.OnlineActivity

        authentication.getDetails(), sessionId, new Date());
    register(sessionId, authentication.getPrincipal(), newOne);
  }

  public OnlineActivity remove(String sessionId) {
    OnlineActivity info = getOnlineActivity(sessionId);
    if (null == info) {
      return null;
    }
    sessionIds.remove(sessionId);
    logger.debug("Remove session {} for {}", sessionId, info.getPrincipal());
    Set<String> sessionsUsedByPrincipal = principals.get(info.getPrincipal());
    if (null != sessionsUsedByPrincipal) {
      synchronized (sessionsUsedByPrincipal) {
        sessionsUsedByPrincipal.remove(sessionId);
        // No need to keep object in principals Map anymore
        if (sessionsUsedByPrincipal.size() == 0) {
          principals.remove(info.getPrincipal());
          logger.debug("Remove principal {} from registry", info.getPrincipal());
        }
      }
    }
    return info;
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.