休息ApiFilters以及如何使用它们

时间:2016-02-24 09:55:24

标签: java web-services rest authentication servlet-filters

我想在我的请求中添加一些过滤功能。

所以这是我目前的代码:

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?

1 个答案:

答案 0 :(得分:0)

查看本教程:http://www.journaldev.com/1933/java-servlet-filter-example-tutorial

我想您是通过web.xml在过滤器配置中设置API密钥。

如果这不够运行时,我会在我的webapp中设置一个配置工具,为键提供值(在简单的情况下是一个单独的Map)并将键放在web.xml配置中。