You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package de.fd.fh.server.access;
import de.fd.fh.server.user.UserId; import dev.morphia.annotations.Embedded; import dev.morphia.annotations.PrePersist; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor;
import java.time.LocalDateTime; import java.util.Random;
@Embedded @NoArgsConstructor @AllArgsConstructor @Getter public class AccessToken { private String token;
private LocalDateTime createdDate;
private Role role;
@Embedded private UserId userId;
static AccessToken of(final Access access) { return new AccessToken( generateToken(), LocalDateTime.now(), access.getRole(), access.getUserId() ); }
@PrePersist void prePersist() { this.createdDate = LocalDateTime.now(); }
private static String generateToken() { final String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; final String lower = upper.toLowerCase(); final String numbers = "0123456789"; final String alphabet = upper + lower + numbers;
System.out.println("generate Security Token.");
Random random = new Random(); StringBuilder generatedString = new StringBuilder(); for (int i = 0; i < 64; i++) { generatedString.append(alphabet.charAt(random.nextInt(alphabet.length()))); }
System.out.println("Token: " + generatedString); return generatedString.toString(); } }
|