WebDavApplicationCredential.java
package com.taxonomy.security.webdav;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import java.time.Instant;
/** Stored, revocable WebDAV-only application credential. The plaintext secret is never stored. */
@Entity
@Table(name = "webdav_application_credential")
public class WebDavApplicationCredential {
@Id
@Column(name = "credential_id", nullable = false, length = 24)
private String credentialId;
@Column(nullable = false, length = 255)
private String username;
@Column(nullable = false, length = 160)
private String description;
@Column(name = "secret_hash", nullable = false, length = 100)
private String secretHash;
@Column(name = "read_allowed", nullable = false)
private boolean readAllowed;
@Column(name = "write_allowed", nullable = false)
private boolean writeAllowed;
@Column(nullable = false, length = 500)
private String authorities;
@Column(name = "created_at", nullable = false)
private Instant createdAt;
@Column(name = "expires_at", nullable = false)
private Instant expiresAt;
@Column(name = "last_used_at")
private Instant lastUsedAt;
@Column(name = "revoked_at")
private Instant revokedAt;
@Version
@Column(nullable = false)
private long version;
public String getCredentialId() { return credentialId; }
public void setCredentialId(String credentialId) { this.credentialId = credentialId; }
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getDescription() { return description; }
public void setDescription(String description) { this.description = description; }
public String getSecretHash() { return secretHash; }
public void setSecretHash(String secretHash) { this.secretHash = secretHash; }
public boolean isReadAllowed() { return readAllowed; }
public void setReadAllowed(boolean readAllowed) { this.readAllowed = readAllowed; }
public boolean isWriteAllowed() { return writeAllowed; }
public void setWriteAllowed(boolean writeAllowed) { this.writeAllowed = writeAllowed; }
public String getAuthorities() { return authorities; }
public void setAuthorities(String authorities) { this.authorities = authorities; }
public Instant getCreatedAt() { return createdAt; }
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
public Instant getExpiresAt() { return expiresAt; }
public void setExpiresAt(Instant expiresAt) { this.expiresAt = expiresAt; }
public Instant getLastUsedAt() { return lastUsedAt; }
public void setLastUsedAt(Instant lastUsedAt) { this.lastUsedAt = lastUsedAt; }
public Instant getRevokedAt() { return revokedAt; }
public void setRevokedAt(Instant revokedAt) { this.revokedAt = revokedAt; }
public long getVersion() { return version; }
}