MonitoringManager.java

package sk.iway.iwcm.components.monitoring.rest;

import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.springframework.data.domain.Page;

import sk.iway.iwcm.Cache;
import sk.iway.iwcm.Constants;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.components.monitoring.jpa.MonitoringEntity;

public class MonitoringManager {

	private static final String CACHE_KEY = "serverMonitoringEnableIPs.set";

	//Refences
	private MonitoringAggregator monitoringAggregator;

    public MonitoringManager(Page<MonitoringEntity> data, Date fromDate, Date toDate) {
		this.monitoringAggregator = new MonitoringAggregator(data, fromDate, toDate);
	}

	public List<MonitoringEntity> returnAggregatedData() {
		return monitoringAggregator.returnAggregatedData();
	}

	public static boolean isIpAllowed(String remoteIp)
	{
		Cache c = Cache.getInstance();

		@SuppressWarnings("unchecked")
		Set<String> allowedIps = c.getObject(CACHE_KEY, HashSet.class);

		if (allowedIps == null) {
			allowedIps = new HashSet<>();
			c.setObjectSeconds(CACHE_KEY, allowedIps, 60*10);
		}
		if (allowedIps.contains(remoteIp)) return true;

		String[] ips = Tools.getTokens(Constants.getString("serverMonitoringEnableIPs"), ",");
		for (String ip : ips)
		{
			if (remoteIp.startsWith(ip))
			{
				allowedIps.add(remoteIp);
				return true;
			}
		}

		return false;
	}

}