feat: Add basic certificate models and repositories (#8)
* Add basic certificate models and repositories * Review comments * Adjust cert enum
This commit is contained in:
parent
a2aea580f2
commit
d98f60ab54
15 changed files with 244 additions and 9 deletions
|
@ -0,0 +1,45 @@
|
|||
package de.mlessmann.certassist.models;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Setter;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
public class Certificate {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.UUID)
|
||||
@Setter(AccessLevel.NONE)
|
||||
private String id;
|
||||
|
||||
@NotNull
|
||||
@Enumerated(EnumType.STRING)
|
||||
private CertificateType type;
|
||||
|
||||
@NotNull
|
||||
private String commonName;
|
||||
|
||||
private String trustingAuthority;
|
||||
|
||||
@Min(1)
|
||||
private int requestedKeyLength;
|
||||
|
||||
@Min(1)
|
||||
private int requestedValidityDays;
|
||||
|
||||
private String subjectEmailAddress;
|
||||
private String subjectOrganization;
|
||||
private String subjectOrganizationalUnit;
|
||||
private String subjectCountry;
|
||||
private String subjectState;
|
||||
private String subjectLocality;
|
||||
|
||||
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private List<CertificateExtension> certificateExtension = new ArrayList<>();
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package de.mlessmann.certassist.models;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Setter;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
public class CertificateExtension {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.UUID)
|
||||
@Setter(AccessLevel.NONE)
|
||||
private String id;
|
||||
|
||||
private String identifier;
|
||||
private String value;
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package de.mlessmann.certassist.models;
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Setter;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
public class CertificateSubjectPreset {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.UUID)
|
||||
@Setter(AccessLevel.NONE)
|
||||
private String id;
|
||||
|
||||
private String emailAddress;
|
||||
private String organization;
|
||||
private String organizationalUnit;
|
||||
private String country;
|
||||
private String state;
|
||||
private String locality;
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package de.mlessmann.certassist.models;
|
||||
|
||||
public enum CertificateType {
|
||||
ROOT_CA,
|
||||
STANDALONE_CERT,
|
||||
SIGNED_CERT,
|
||||
CLIENT_CERT,
|
||||
}
|
|
@ -4,6 +4,7 @@ import jakarta.persistence.Entity;
|
|||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
|
@ -12,8 +13,9 @@ import lombok.Setter;
|
|||
public class User {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.SEQUENCE)
|
||||
private Long id;
|
||||
@GeneratedValue(strategy = GenerationType.UUID)
|
||||
@Setter(AccessLevel.NONE)
|
||||
private String id;
|
||||
|
||||
@Setter
|
||||
private String username;
|
||||
|
|
|
@ -9,6 +9,7 @@ import lombok.Data;
|
|||
public class CertificateRequest {
|
||||
|
||||
@Builder.Default
|
||||
@Deprecated
|
||||
private String oid = UUID.randomUUID().toString();
|
||||
|
||||
private RequestType type;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package de.mlessmann.certassist.repositories;
|
||||
|
||||
import de.mlessmann.certassist.models.CertificateExtension;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface CertificateExtensionRepository extends CrudRepository<CertificateExtension, String> {}
|
|
@ -0,0 +1,8 @@
|
|||
package de.mlessmann.certassist.repositories;
|
||||
|
||||
import de.mlessmann.certassist.models.Certificate;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface CertificateRepository extends CrudRepository<Certificate, String> {}
|
|
@ -0,0 +1,8 @@
|
|||
package de.mlessmann.certassist.repositories;
|
||||
|
||||
import de.mlessmann.certassist.models.CertificateSubjectPreset;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface CertificateSubjectPresetRepository extends CrudRepository<CertificateSubjectPreset, String> {}
|
|
@ -5,7 +5,4 @@ import org.springframework.data.repository.CrudRepository;
|
|||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface UserRepository extends CrudRepository<User, Long> {
|
||||
|
||||
User findUserById(long id);
|
||||
}
|
||||
public interface UserRepository extends CrudRepository<User, String> {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue