UserPrincipal.java
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. package com.azure.spring.autoconfigure.aad; import com.nimbusds.jose.JWSObject; import com.nimbusds.jwt.JWTClaimsSet; import java.io.Serializable; import java.util.Map; import java.util.Optional; import java.util.Set; /** * entity class of UserPrincipal */ public class UserPrincipal implements Serializable { private static final long serialVersionUID = -3725690847771476854L; private static final String PERSONAL_ACCOUNT_TENANT_ID = "9188040d-6c67-4c5b-b112-36a304b66dad"; private String aadIssuedBearerToken; // id_token or access_token private final JWSObject jwsObject; private final JWTClaimsSet jwtClaimsSet; /** * All groups in aadIssuedBearerToken. Including the ones not exist in aadAuthenticationProperties.getUserGroup() * .getAllowedGroups() */ private Set<String> groups; /** * All roles in aadIssuedBearerToken. */ private Set<String> roles; private String accessTokenForGraphApi; public UserPrincipal(String aadIssuedBearerToken, JWSObject jwsObject, JWTClaimsSet jwtClaimsSet) { this.aadIssuedBearerToken = aadIssuedBearerToken; this.jwsObject = jwsObject; this.jwtClaimsSet = jwtClaimsSet; } public String getAadIssuedBearerToken() { return aadIssuedBearerToken; } public void setAadIssuedBearerToken(String aadIssuedBearerToken) { this.aadIssuedBearerToken = aadIssuedBearerToken; } public Set<String> getGroups() { return this.groups; } public void setGroups(Set<String> groups) { this.groups = groups; } public Set<String> getRoles() { return roles; } public void setRoles(Set<String> roles) { this.roles = roles; } public String getAccessTokenForGraphApi() { return accessTokenForGraphApi; } public void setAccessTokenForGraphApi(String accessTokenForGraphApi) { this.accessTokenForGraphApi = accessTokenForGraphApi; } public boolean isMemberOf(AADAuthenticationProperties aadAuthenticationProperties, String group) { return aadAuthenticationProperties.isAllowedGroup(group) && Optional.of(groups) .map(g -> g.contains(group)) .orElse(false); } public String getKid() { return jwsObject == null ? null : jwsObject.getHeader().getKeyID(); } public String getIssuer() { return jwtClaimsSet == null ? null : jwtClaimsSet.getIssuer(); } public String getSubject() { return jwtClaimsSet == null ? null : jwtClaimsSet.getSubject(); } public Map<String, Object> getClaims() { return jwtClaimsSet == null ? null : jwtClaimsSet.getClaims(); } public Object getClaim(String name) { return jwtClaimsSet == null ? null : jwtClaimsSet.getClaim(name); } public String getName() { return jwtClaimsSet == null ? null : (String) jwtClaimsSet.getClaim("name"); } public String getTenantId() { return jwtClaimsSet == null ? null : (String) jwtClaimsSet.getClaim("tid"); } public String getUserPrincipalName() { return jwtClaimsSet == null ? null : (String) jwtClaimsSet.getClaim("preferred_username"); } public boolean isPersonalAccount() { return PERSONAL_ACCOUNT_TENANT_ID.equals(getTenantId()); } }
ncG1vNJzZmiZqqq%2Fpr%2FDpJirrJmbrqTA0meZpaeSY7CwvsRnrqKmlKTEtHrNnqtomaqqv6Z50p2iZp6fp3qrrdWaZq2do6l6pLvVnqman5VkrrvB0Z5krKiinruoecGopq1nk6S6b63ZrqmeZqOlv6q6xmeYrqyfmLyvssigrKudXpaupXu0rJyriKKeu6S1z5qjZ6KRq65vtNOmow%3D%3D
Valentine Belue
Update: 2024-05-11