Password WIP
This commit is contained in:
@@ -5,17 +5,26 @@ import java.time.LocalDate;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import com.covas.Enums.Roles;
|
||||
import javax.xml.bind.DatatypeConverter;
|
||||
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
import org.wildfly.security.password.interfaces.SimpleDigestPassword;
|
||||
|
||||
import io.quarkus.elytron.security.common.BcryptUtil;
|
||||
import io.quarkus.hibernate.orm.panache.PanacheEntity;
|
||||
import io.quarkus.security.jpa.UserDefinition;
|
||||
import io.quarkus.security.jpa.Username;
|
||||
import io.quarkus.security.jpa.Password;
|
||||
import io.quarkus.security.jpa.PasswordProvider;
|
||||
import io.quarkus.security.jpa.PasswordType;
|
||||
import io.quarkus.security.jpa.Roles;
|
||||
|
||||
@Entity
|
||||
@Table(name = "users")
|
||||
@UserDefinition
|
||||
public class UsersEntity extends PanacheEntity {
|
||||
|
||||
|
||||
@Username
|
||||
@Column(nullable = false, unique = true)
|
||||
public String pseudo;
|
||||
@Column(nullable = false, unique = true)
|
||||
@@ -28,13 +37,36 @@ public class UsersEntity extends PanacheEntity {
|
||||
public LocalDate birth;
|
||||
@ColumnDefault("false")
|
||||
public Boolean status;
|
||||
@Password(value = PasswordType.CUSTOM, provider = CustomPasswordProvider.class)
|
||||
@Column(nullable = false)
|
||||
public String password;
|
||||
|
||||
public Roles roles;
|
||||
@Roles
|
||||
public String roles;
|
||||
|
||||
public static UsersEntity findByPseudo(String pseudo){
|
||||
return find("pseudo", pseudo).firstResult();
|
||||
}
|
||||
|
||||
|
||||
public static void add(String pseudo, String email, String name, String firstName, LocalDate birth, String password, String roles){
|
||||
UsersEntity users = new UsersEntity();
|
||||
users.pseudo = pseudo;
|
||||
users.email = email;
|
||||
users.name = name;
|
||||
users.firstName = firstName;
|
||||
users.birth = birth;
|
||||
users.status = false;
|
||||
users.password = BcryptUtil.bcryptHash(password);
|
||||
users.roles = roles;
|
||||
users.persist();
|
||||
}
|
||||
}
|
||||
|
||||
public class CustomPasswordProvider implements PasswordProvider {
|
||||
|
||||
@Override
|
||||
public org.wildfly.security.password.Password getPassword(String pass) {
|
||||
byte[] digest = DatatypeConverter.parseHexBinary(pass);
|
||||
return SimpleDigestPassword.createRaw(SimpleDigestPassword.ALGORITHM_SIMPLE_DIGEST_SHA_256, digest);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user