@Override
    public List<Header> headers() throws AccessDeniedException, MissingReceiptException, InvalidReceiptException {
        final List<License> receipts = factory.open();
        if(receipts.isEmpty()) {
            throw new MissingReceiptException();
        }
        final List<Header> headers = new ArrayList<Header>();
        for(License receipt : receipts) {
            if(log.isInfoEnabled()) {
                log.info(String.format("Using voucher %s", receipt));
            }
            if(!receipt.verify(new DisabledLicenseVerifierCallback())) {
                throw new InvalidReceiptException();
            }
            headers.add(new Header(Headers.HEADER_VOUCHER, receipt.getValue("Voucher")));
        }
        return headers;
    }
@Test(expected = MissingReceiptException.class)
    public void testHeaders() throws Exception {
        new QloudsonicProxyProvider().headers();
    }