如何在Restlet中使用Filter实现Validator?

时间:2013-09-03 06:37:29

标签: java web-services filter validation restlet

我正在开发RESTLet webservices,为此我使用的是Restlet 2.0 API。

我想在webservices上实现Filter和Validator。

我已成功实施过滤器。在过滤器类中,我检查请求是否经过身份验证意味着它是从有效用户调用的。我正在检查标头字段以验证请求。这是我的代码 -

public class MyFilter extends Filter {

@Override
    protected int beforeHandle(Request request, Response response) {
           // Conditions to check the header feild
        }
}

我的Application类是 -

public class MyApplication extends Application{

    @Override
    public Restlet createInboundRoot() {

                Router router = new Router(getContext());

        Filter filter = new MyFilter(getContext());
        filter.setNext(MyWebservice.class);
        router.attach("/myWebservice", filter);

                return router;
         }
}

现在我想实现Validator类来检查请求是否包含必需参数。我想在过滤器后跟随验证器。但是在应用程序类中,我们可以提供Filter或Validator。我没有得到任何用filter实现验证器的例子。

所以请帮我在restlet中使用Filter实现Validator。

1 个答案:

答案 0 :(得分:0)

它被设置为使用'责任链'模式 - 只需尝试将Validator设置为'Next'而不是Resource类,然后将资源设置为其链中的下一个。

你的代码:

@Override
public Restlet createInboundRoot() {

        Router router = new Router(getContext());

        Filter filter = new MyFilter(getContext());
        filter.setNext(new MyValidator(getContext(), MyWebservice.class));
        router.attach("/myWebservice", filter);

        return router;
     }
}