EchoVib

AzureOAuth2AuthenticatedPrincipal.java

AzureOAuth2AuthenticatedPrincipal.java
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. package com.azure.spring.aad.webapi; import static org.springframework.security.core.authority.AuthorityUtils.NO_AUTHORITIES; import com.nimbusds.jwt.JWTClaimsSet; import com.nimbusds.jwt.JWTClaimsSet.Builder; import java.io.Serializable; import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.oauth2.core.OAuth2AuthenticatedPrincipal; import org.springframework.util.Assert; /** * entity class of AzureOAuth2AuthenticatedPrincipal */ public class AzureOAuth2AuthenticatedPrincipal implements OAuth2AuthenticatedPrincipal, Serializable { private static final long serialVersionUID = -3625690847771476854L; private static final String PERSONAL_ACCOUNT_TENANT_ID = "9188040d-6c67-4c5b-b112-36a304b66dad"; private final Collection<GrantedAuthority> authorities; private final Map<String, Object> headers; private final Map<String, Object> attributes; private final String tokenValue; private JWTClaimsSet jwtClaimsSet; public AzureOAuth2AuthenticatedPrincipal(Map<String, Object> headers, Map<String, Object> attributes,  Collection<GrantedAuthority> authorities, String tokenValue) {  Assert.notEmpty(attributes, "attributes cannot be empty");  Assert.notEmpty(headers, "headers cannot be empty");  this.headers = headers;  this.tokenValue = tokenValue;  this.attributes = Collections.unmodifiableMap(attributes);  this.authorities = authorities == null ? NO_AUTHORITIES : Collections.unmodifiableCollection(authorities);  toJwtClaimsSet(attributes);  } private void toJwtClaimsSet(Map<String, Object> attributes) {  JWTClaimsSet.Builder builder = new Builder();  for (Entry<String, Object> entry : attributes.entrySet()) {  builder.claim(entry.getKey(), entry.getValue());  }  this.jwtClaimsSet = builder.build();  } @Override public Map<String, Object> getAttributes() {  return attributes; } @Override public Collection<? extends GrantedAuthority> getAuthorities() {  return authorities; } @Override public String getName() {  return jwtClaimsSet == null ? null : (String) jwtClaimsSet.getClaim("name"); } public String getTokenValue() {  return tokenValue; } public Map<String, Object> getHeaders() {  return headers; } public JWTClaimsSet getJwtClaimsSet() {  return jwtClaimsSet; } 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 getTenantId() {  return jwtClaimsSet == null ? null : (String) jwtClaimsSet.getClaim("tid"); } public boolean isPersonalAccount() {  return PERSONAL_ACCOUNT_TENANT_ID.equals(getTenantId()); } } 

ncG1vNJzZmiZqqq%2Fpr%2FDpJirrJmbrqTA0meZpaeSY7CwvsRnrqKmlKTEtHrNnqtomaqqv6Z50p2iZp6fp3qrrdWaZq2do6l6pLvVnqman5VkrrvB0Z5krKiinruoecGopq1nk6S6b63ZrqmeZqOlv6q6xmeYmpxerLKjrc%2BiZnqypaeykI3UrZ9reaWptaa606KamqyVmZ2ztc2coKmZnGO3osLAZ5%2BtpZw%3D

Na Lin

Update: 2024-06-23