UserInfoResponse.java
package no.nav.data.common.security.dto;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder({"loggedIn", "ident", "name", "email", "groups"})
public class UserInfoResponse {
private boolean loggedIn;
private String ident;
private String name;
private String email;
private List<String> groups = new ArrayList<>();
public static UserInfoResponse noUser(boolean securityEnabled) {
var responseBuilder = UserInfoResponse.builder().loggedIn(false)
.appRole(AppRole.READ);
if (!securityEnabled) {
responseBuilder
.appRole(AppRole.WRITE)
.appRole(AppRole.ADMIN)
.name("Anon")
.ident("x000000");
}
return responseBuilder.build();
}
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
public static class UserInfoResponseBuilder {
private List<String> groups = new ArrayList<>();
public UserInfoResponseBuilder appRole(AppRole appRole) {
this.groups.add(appRole.name());
return this;
}
}
}