我想在我的请求中添加一些过滤功能。
所以这是我目前的代码:
ServletContextHandler con = new ServletContextHandler(ServletContextHandler.SESSIONS);
con.addFilter(AuthApiFilter.class, "/*", EnumSet.of(DispatcherType.INCLUDE,DispatcherType.REQUEST));
handlerList.setHandlers(new Handler[] { con } );
jettyServer.setHandler(handlerList);
注意,不是Filter的实例传递给上下文而是它是一个类。
现在我的过滤器的一部分看起来像:
public class ApiFilter implements javax.servlet.Filter {
private List<String> apiKeys;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
//..verifyKey from request with keys in list
问题:如何在运行时加载apiKeys?
答案 0 :(得分:0)
查看本教程:http://www.journaldev.com/1933/java-servlet-filter-example-tutorial
我想您是通过web.xml在过滤器配置中设置API密钥。
如果这不够运行时,我会在我的webapp中设置一个配置工具,为键提供值(在简单的情况下是一个单独的Map)并将键放在web.xml配置中。