package org.archive.wayback.resourceindex.cdxserver; import org.archive.cdxserver.auth.AuthToken; import org.archive.cdxserver.auth.PrivTokenAuthChecker; import org.archive.cdxserver.filter.CDXAccessFilter; import org.archive.cdxserver.filter.CDXFilter; import org.archive.wayback.accesscontrol.ExclusionFilterFactory; import org.archive.wayback.accesscontrol.robotstxt.redis.RedisRobotExclusionFilterFactory; import org.archive.wayback.resourceindex.filters.ExclusionFilter; public class WaybackAuthChecker extends PrivTokenAuthChecker { protected ExclusionFilterFactory adminExclusions; protected RedisRobotExclusionFilterFactory robotsExclusions; protected CDXFilter prefixFilter = null; public CDXAccessFilter createAccessFilter(AuthToken token) { ExclusionFilter adminFilter = null; if (adminExclusions != null) { adminFilter = adminExclusions.get(); } ExclusionFilter robotsFilter = null; if (robotsExclusions != null && !isAllowed(token, ignoreRobotsAccessTokens) && !token.isIgnoreRobots()) { robotsFilter = robotsExclusions.get(); } return new AccessCheckFilter(token, adminFilter, robotsFilter, prefixFilter, null); } public ExclusionFilterFactory getAdminExclusions() { return adminExclusions; } public void setAdminExclusions(ExclusionFilterFactory adminExclusions) { this.adminExclusions = adminExclusions; } public RedisRobotExclusionFilterFactory getRobotsExclusions() { return robotsExclusions; } public void setRobotsExclusions( RedisRobotExclusionFilterFactory robotsExclusions) { this.robotsExclusions = robotsExclusions; } public CDXFilter getPrefixFilter() { return prefixFilter; } public void setPrefixFilter(CDXFilter prefixFilter) { this.prefixFilter = prefixFilter; } }