All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src-main.org.awakefw.file.util.IpUtil Maven / Gradle / Ivy

Go to download

Awake FILE is a secure Open Source framework that allows to program very easily file uploads/downloads and RPC through http. File transfers include powerful features like file chunking and automatic recovery mechanism. Security has been taken into account from the design: server side allows to specify strong security rules in order to protect the files and to secure the RPC calls.

There is a newer version: 3.0
Show newest version
/**
 * 
 */
package org.awakefw.file.util;

import java.util.List;

/**
 * @author Nicolas de Pomereu
 *
 */
public class IpUtil {

    /**
     * Protected
     */
    protected IpUtil() {
	
    }

    /**
     * Test if an ip is blacklisted against a blacklist of ip
     * 
     * @param ip
     *            the IP address to test
     * @param ipsBlacklist
     *            the list of blacklisted ip
     * 
     * @return true if the ip is banned, else false
     */
    public static boolean isIpBlacklisted(String ip, List ipsBlacklist) {
        if (ip == null) {
            return false;
        }
    
        if (ipsBlacklist == null) {
            return false;
        }
    
        for (String theBannedIp : ipsBlacklist) {
            if (theBannedIp.contains("/")) {
        	IpSubnet ipSubnet = new IpSubnet(theBannedIp);
        	if (ipSubnet.contains(ip)) {
    
        	    return true;
        	} else {
        	    // Nothing
        	}
            } else {
        	if (ip.equals(theBannedIp)) {
        	    return true;
        	}
            }
        }
    
        return false;
    }

    /**
     * Test if an ip is whitelisted against a whilelist of ip
     * 
     * @param ip
     *            the IP address to test
     * @param ipsWhitelist
     *            the list of whitelisted ip
     * 
     * @return true if the ip is whitelisted, else false
     */
    public static boolean isIpWhitelisted(String ip, List ipsWhitelist) {
        if (ip == null) {
            return false;
        }
    
        // All Ips are whitelisted if awakeCommonsConfigurator.getIPsWhitelist() is empty or null
        if (ipsWhitelist == null || ipsWhitelist.isEmpty()) {
            return true;
        }
    
        for (String theWhitelistedIp : ipsWhitelist) {
            if (theWhitelistedIp.contains("/")) {
        	IpSubnet ipSubnet = new IpSubnet(theWhitelistedIp);
        	if (ipSubnet.contains(ip)) {
    
        	    return true;
        	} else {
        	    // Nothing
        	}
            } else {
        	if (ip.equals(theWhitelistedIp)) {
        	    return true;
        	}
            }
        }
    
        return false;
    }

    
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy