AppUser.java
package com.taxonomy.security.model;
import jakarta.persistence.*;
import java.util.HashSet;
import java.util.Set;
/**
* Application user stored in the database.
* Linked to {@link AppRole} via a many-to-many join table.
*/
@Entity
@Table(name = "app_user")
public class AppUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String username;
@Column(name = "password_hash", nullable = false)
private String passwordHash;
@Column(nullable = false)
private boolean enabled = true;
@Column(name = "display_name")
private String displayName;
private String email;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "user_roles",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id")
)
private Set<AppRole> roles = new HashSet<>();
public AppUser() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPasswordHash() {
return passwordHash;
}
public void setPasswordHash(String passwordHash) {
this.passwordHash = passwordHash;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Set<AppRole> getRoles() {
return roles;
}
public void setRoles(Set<AppRole> roles) {
this.roles = roles;
}
}