package com.mossle.cdn; import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.servlet.Filter; import com.mossle.core.servlet.BeforeInvocationFilter; import com.mossle.core.servlet.ProxyFilter; import com.mossle.core.servlet.ServletFilter; import com.mossle.core.servlet.StaticContentFilter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CdnServletRegister { private static Logger logger = LoggerFactory .getLogger(CdnServletRegister.class); private BeforeInvocationFilter beforeInvocationFilter; private String baseDir; @PostConstruct public void init() { this.addFirstFilter("cdn-o", "/cdn/o/*", new CdnStaticContentFilter( baseDir)); this.addFirstFilter("cdn-r", "/cdn/r/*", new CdnStaticContentFilter( baseDir)); this.addFirstFilter("cdn-public", "/cdn/public/*", new CdnStaticContentFilter(baseDir)); } public void addFirstFilter(String name, String urlPattern, Filter filter) { logger.info("add first filter : {} {} {} ", name, urlPattern, filter); ProxyFilter proxyFilter = new ProxyFilter(); proxyFilter.setName(name); proxyFilter.setFilter(filter); proxyFilter.setUrlPattern(urlPattern); this.beforeInvocationFilter.addFirstFilter(proxyFilter); } @Resource public void setBeforeInvocationFilter( BeforeInvocationFilter beforeInvocationFilter) { this.beforeInvocationFilter = beforeInvocationFilter; } public void setBaseDir(String baseDir) { this.baseDir = baseDir; } }