/
UsernameAuthoritiesDto.java
46 lines (37 loc) · 1.54 KB
/
UsernameAuthoritiesDto.java
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
package com.spring5microservices.common.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import static java.util.Objects.isNull;
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
@Builder
@Data
@EqualsAndHashCode(of = {"username"})
@NoArgsConstructor
@Schema(description = "Authorization information about an specific user")
public class UsernameAuthoritiesDto {
@Schema(description = "Identifier of the logged user", requiredMode = RequiredMode.REQUIRED)
private String username;
@Schema(description = "Roles and/or permissions of the logged user", requiredMode = RequiredMode.REQUIRED)
private Set<String> authorities;
@Schema(description = "Extra data returned by security service", requiredMode = RequiredMode.REQUIRED)
private Map<String, Object> additionalInfo;
public UsernameAuthoritiesDto(final String username,
final Collection<String> authorities,
final Map<String, Object> additionalInfo) {
this.username = username;
this.authorities = isNull(authorities)
? new HashSet<>()
: new HashSet<>(authorities);
this.additionalInfo = isNull(additionalInfo)
? new HashMap<>()
: new HashMap<>(additionalInfo);
}
}