class SignedTokenFactory implements SimpleTokenFactory {

    @Override
    public ContinuationToken generateContinuationToken(String username) {
        Preconditions.checkNotNull(username);
        ZonedDateTime expirationTime = zonedDateTimeProvider.get().plusMinutes(15);
        return new ContinuationToken(username,
            expirationTime,
            signatureHandler.sign(
                    Joiner.on(ContinuationToken.SEPARATOR)
                        .join(username,
                            DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(expirationTime))));
    }

    @Inject public  SignedTokenFactory(SignatureHandler signatureHandler, ZonedDateTimeProvider zonedDateTimeProvider);

}