如何检查过滤器中的用户角色?

How to check user roles in a filter?

我正在使用 play framework 2.8.x,如果用户尚未访问此页面,我需要为某些页面添加一些检查 我不得不拒绝此请求,我认为我可以使用过滤器,但我没有'知道如何拒绝过滤器中的传入请求。我的过滤器如下所示:

public class PageAccessFilter extends Filter {
    @Inject
    public PageAccessFilter(Materializer mat) {
        super(mat);
    }

    @Override
    public CompletionStage<Result> apply(Function<Http.RequestHeader, CompletionStage<Result>> next, Http.RequestHeader rh) {

        return next.apply(rh); // how can I reject request?
    }
}

如何拒绝带有某些状态码的登录请求?

简单。只是 return 禁止():

@Override
public CompletionStage<Result> apply(Function<Http.RequestHeader, CompletionStage<Result>> next, Http.RequestHeader rh) {

    if (your auth check failed) {
        return CompletableFuture.completedFuture(Results.forbidden());
    }
    return next.apply(rh); 
}