Package org.dspace.statistics.util
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 Summary
Constructors Constructor Description SpiderDetectorServiceImpl(ConfigurationService configurationService, ClientInfoService clientInfoService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IPTablegetTable()booleanisSpider(String ip)Check individual IP is a spider.booleanisSpider(String clientIP, String proxyIPs, String hostname, String agent)Service Method for testing spiders against existing spider files.booleanisSpider(javax.servlet.http.HttpServletRequest request)Service Method for testing spiders against existing spider files.voidloadSpiderIpAddresses()Set<String>readPatterns(File patternFile)Utility method which reads lines from a file & returns them in a Set.
-
-
-
Constructor Detail
-
SpiderDetectorServiceImpl
@Autowired(required=true) public SpiderDetectorServiceImpl(ConfigurationService configurationService, ClientInfoService clientInfoService)
-
-
Method Detail
-
getTable
public IPTable getTable()
- Specified by:
getTablein interfaceSpiderDetectorService
-
isSpider
public boolean isSpider(String clientIP, String proxyIPs, String hostname, String agent)
Service Method for testing spiders against existing spider files.In future spiders HashSet may be optimized as byte offset array to improve performance and memory footprint further.
- Specified by:
isSpiderin interfaceSpiderDetectorService- 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
Utility method which reads lines from a file & returns them in a Set.- Specified by:
readPatternsin interfaceSpiderDetectorService- 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(javax.servlet.http.HttpServletRequest request)
Service Method for testing spiders against existing spider files.- Specified by:
isSpiderin interfaceSpiderDetectorService- Parameters:
request-- Returns:
- true|false if the request was detected to be from a spider.
-
isSpider
public boolean isSpider(String ip)
Check individual IP is a spider.- Specified by:
isSpiderin interfaceSpiderDetectorService- Parameters:
ip-- Returns:
- if is spider IP
-
loadSpiderIpAddresses
public void loadSpiderIpAddresses()
- Specified by:
loadSpiderIpAddressesin interfaceSpiderDetectorService
-
-