io.paradoxical.cassieq.discoverable.auth.SignedRequestAuthParameters Maven / Gradle / Ivy
package io.paradoxical.cassieq.discoverable.auth;
import io.paradoxical.cassieq.model.accounts.AccountName;
import io.paradoxical.cassieq.model.auth.AuthorizationLevel;
import io.paradoxical.cassieq.model.auth.SignatureGenerator;
import io.paradoxical.cassieq.model.auth.SignedRequestSignatureGenerator;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NonNull;
import lombok.Value;
import org.joda.time.DateTime;
import javax.validation.constraints.NotNull;
import java.util.EnumSet;
@EqualsAndHashCode(callSuper = false)
@Value
@Builder
public class SignedRequestAuthParameters extends SignedAuthParametersBase implements RequestAuthParameters {
@NonNull
@NotNull
private final AccountName accountName;
@NonNull
@NotNull
private final String requestMethod;
@NonNull
@NotNull
private final String requestPath;
@NonNull
@NotNull
private final DateTime requestTime;
private final String providedSignature;
@Override
public EnumSet getAuthorizationLevels() {
return AuthorizationLevel.All;
}
@Override
protected SignatureGenerator getSignatureGenerator() {
return new SignedRequestSignatureGenerator(accountName, requestMethod, requestPath, requestTime);
}
@Override
public boolean verify(final VerificationContext context) {
return super.verify(context) &&
context.requestTimeWithinAllowances(requestTime);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy