package org.togglz.console.handlers;
import java.io.IOException;
import java.io.InputStream;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletResponse;
import org.togglz.console.RequestEvent;
import org.togglz.console.RequestHandlerBase;
public class ResourceHandler extends RequestHandlerBase {
private final Pattern PATTERN = Pattern.compile(".*/(\\w+)\\.(css|js|png|eot|svg|ttf|woff|woff2)$");
@Override
public boolean handles(String path) {
return PATTERN.matcher(path).matches();
}
@Override
public boolean adminOnly() {
return false;
}
@Override
public void process(RequestEvent event) throws IOException {
HttpServletResponse response = event.getResponse();
Matcher matcher = PATTERN.matcher(event.getRequest().getRequestURI());
if (matcher.matches()) {
String basename = matcher.group(1);
String type = matcher.group(2);
InputStream stream = loadResource(basename + "." + type);
if (stream == null) {
response.sendError(404);
return;
}
if ("css".equals(type)) {
response.setContentType("text/css");
} else if ("js".equals(type)) {
response.setContentType("text/javascript");
} else if ("png".equals(type)) {
response.setContentType("image/png");
} else {
response.setContentType("image/" + type);
}
copy(stream, response.getOutputStream());
}
}
}