Class SpiderDetectorServiceImpl

java.lang.Object
org.dspace.statistics.util.SpiderDetectorServiceImpl
All Implemented Interfaces:
SpiderDetectorService

public class SpiderDetectorServiceImpl extends Object implements SpiderDetectorService
SpiderDetectorServiceImpl is used to find IP's that are spiders... In future someone may add Host Domains to the detection criteria here.
Author:
kevinvandevelde at atmire.com, ben at atmire.com, Mark Diggory (mdiggory at atmire.com), frederic at atmire.com
  • Constructor Details

  • Method Details

    • getTable

      public IPTable getTable()
      Specified by:
      getTable in interface SpiderDetectorService
      Returns:
      the table of IP net blocks.
    • isSpider

      public boolean isSpider(@NotNull @NotNull String clientIP, String proxyIPs, String hostname, String agent)
      Description copied from interface: SpiderDetectorService
      Service Method for testing spiders against existing spider files.
      Specified by:
      isSpider in interface SpiderDetectorService
      Parameters:
      clientIP - address of the client.
      proxyIPs - comma-list of X-Forwarded-For addresses, or null.
      hostname - domain name of host, or null.
      agent - User-Agent header value, or null.
      Returns:
      true if the client matches any spider characteristics list.
    • readPatterns

      public Set<String> readPatterns(File patternFile) throws IOException
      Description copied from interface: SpiderDetectorService
      Utility method which reads lines from a file & returns them in a Set.
      Specified by:
      readPatterns in interface SpiderDetectorService
      Parameters:
      patternFile - the location of our spider file
      Returns:
      a vector full of patterns
      Throws:
      IOException - could not happen since we check the file be4 we use it
    • isSpider

      public boolean isSpider(jakarta.servlet.http.HttpServletRequest request)
      Description copied from interface: SpiderDetectorService
      Service Method for testing spiders against existing spider files.
      Specified by:
      isSpider in interface SpiderDetectorService
      Parameters:
      request - the current HTTP request.
      Returns:
      true|false if the request was detected to be from a spider.
    • isSpider

      public boolean isSpider(String ip)
      Description copied from interface: SpiderDetectorService
      Check individual IP is a spider.
      Specified by:
      isSpider in interface SpiderDetectorService
      Parameters:
      ip - the IP address to be checked.
      Returns:
      if is spider IP
    • loadSpiderIpAddresses

      public void loadSpiderIpAddresses()
      Description copied from interface: SpiderDetectorService
      Loader to populate the IP address table from files.
      Specified by:
      loadSpiderIpAddresses in interface SpiderDetectorService