package io.fathom.cloud.compute.api.aws.ec2;
import java.io.IOException;
import javax.inject.Singleton;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
@Singleton
public class AwsFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
ServletException {
HttpServletRequest request = (HttpServletRequest) req;
String auth = request.getHeader("Authorization");
if (auth != null && auth.startsWith("AWS ")) {
String uri = request.getRequestURI();
if (uri.isEmpty() || uri.charAt(0) != '/') {
uri = "/" + uri;
}
uri = "/aws/s3" + uri;
req.getRequestDispatcher(uri).forward(req, res);
} else {
chain.doFilter(request, res);
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
}