-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUser.java
More file actions
80 lines (62 loc) · 2.08 KB
/
Copy pathUser.java
File metadata and controls
80 lines (62 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package cat.udl.eps.softarch.demo.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.persistence.*;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import java.util.Collection;
@Entity
@Table(name = "DemoUser") //Avoid collision with system table User
@Data
@EqualsAndHashCode(callSuper = true)
public class User extends UriEntity<String> implements UserDetails {
public static PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
@Id
private String id; // este id (lo seleccioa el usuario) pero mejir no dejarle q escoja y q no sea su user.name
@NotBlank
@Email
@Column(unique = true)
private String email;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@NotBlank
@Length(min = 8, max = 256)
private String password;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private boolean passwordReset;
public void encodePassword() {
this.password = passwordEncoder.encode(this.password);
}
@Override
public String getUsername() { return id; }
public void setUsername(String username) { this.id = username; }
@Override
@JsonValue(value = false)
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
public Collection<? extends GrantedAuthority> getAuthorities() {
return AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER");
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}