View Javadoc
1   /*
2    * Copyright (C) 2023 B3Partners B.V.
3    *
4    * SPDX-License-Identifier: MIT
5    */
6   package org.tailormap.api.persistence;
7   
8   import jakarta.persistence.Column;
9   import jakarta.persistence.Entity;
10  import jakarta.persistence.EntityListeners;
11  import jakarta.persistence.GeneratedValue;
12  import jakarta.persistence.GenerationType;
13  import jakarta.persistence.Id;
14  import jakarta.persistence.Version;
15  import jakarta.validation.constraints.NotNull;
16  import java.time.LocalDate;
17  import java.util.List;
18  import java.util.UUID;
19  import org.hibernate.annotations.JdbcTypeCode;
20  import org.hibernate.envers.Audited;
21  import org.hibernate.type.SqlTypes;
22  import org.springframework.data.jpa.domain.support.AuditingEntityListener;
23  import org.tailormap.api.persistence.listener.EntityEventPublisher;
24  
25  @Audited
26  @Entity
27  @EntityListeners({EntityEventPublisher.class, AuditingEntityListener.class})
28  public class OIDCConfiguration extends AuditMetadata {
29    @Id
30    @GeneratedValue(strategy = GenerationType.IDENTITY)
31    private Long id;
32  
33    @Version
34    private Long version;
35  
36    @NotNull private String name;
37  
38    @NotNull private String clientId;
39  
40    private String clientSecret;
41  
42    private LocalDate clientSecretExpiry;
43  
44    @NotNull private String issuerUrl;
45  
46    @NotNull private String userNameAttribute;
47  
48    private String status;
49  
50    private UUID image;
51  
52    @JdbcTypeCode(SqlTypes.JSON)
53    @Column(columnDefinition = "jsonb")
54    private List<String> defaultAuthorities;
55  
56    private String rolesClaimFilterRegex;
57  
58    private boolean disableAutomaticGroupCreation;
59  
60    public Long getId() {
61      return id;
62    }
63  
64    public OIDCConfiguration setId(Long id) {
65      this.id = id;
66      return this;
67    }
68  
69    public Long getVersion() {
70      return version;
71    }
72  
73    public OIDCConfiguration setVersion(Long version) {
74      this.version = version;
75      return this;
76    }
77  
78    public String getName() {
79      return name;
80    }
81  
82    public OIDCConfiguration setName(String name) {
83      this.name = name;
84      return this;
85    }
86  
87    public String getClientId() {
88      return clientId;
89    }
90  
91    public OIDCConfiguration setClientId(String clientId) {
92      this.clientId = clientId;
93      return this;
94    }
95  
96    public String getClientSecret() {
97      return clientSecret;
98    }
99  
100   public OIDCConfiguration setClientSecret(String clientSecret) {
101     this.clientSecret = clientSecret;
102     return this;
103   }
104 
105   public LocalDate getClientSecretExpiry() {
106     return clientSecretExpiry;
107   }
108 
109   public OIDCConfiguration setClientSecretExpiry(LocalDate clientSecretExpiry) {
110     this.clientSecretExpiry = clientSecretExpiry;
111     return this;
112   }
113 
114   public String getIssuerUrl() {
115     return issuerUrl;
116   }
117 
118   public OIDCConfiguration setIssuerUrl(String issuerUrl) {
119     this.issuerUrl = issuerUrl;
120     return this;
121   }
122 
123   public String getUserNameAttribute() {
124     return userNameAttribute;
125   }
126 
127   public OIDCConfiguration setUserNameAttribute(String userNameAttribute) {
128     this.userNameAttribute = userNameAttribute;
129     return this;
130   }
131 
132   public String getStatus() {
133     return status;
134   }
135 
136   public OIDCConfiguration setStatus(String status) {
137     this.status = status;
138     return this;
139   }
140 
141   public UUID getImage() {
142     return image;
143   }
144 
145   public OIDCConfiguration setImage(UUID image) {
146     this.image = image;
147     return this;
148   }
149 
150   public List<String> getDefaultAuthorities() {
151     return defaultAuthorities;
152   }
153 
154   public OIDCConfiguration setDefaultAuthorities(List<String> defaultAuthorities) {
155     this.defaultAuthorities = defaultAuthorities;
156     return this;
157   }
158 
159   public String getRolesClaimFilterRegex() {
160     return rolesClaimFilterRegex;
161   }
162 
163   public OIDCConfiguration setRolesClaimFilterRegex(String rolesClaimFilter) {
164     this.rolesClaimFilterRegex = rolesClaimFilter;
165     return this;
166   }
167 
168   public boolean isDisableAutomaticGroupCreation() {
169     return disableAutomaticGroupCreation;
170   }
171 
172   public OIDCConfiguration setDisableAutomaticGroupCreation(boolean disableAutomaticGroupCreation) {
173     this.disableAutomaticGroupCreation = disableAutomaticGroupCreation;
174     return this;
175   }
176 }