dimas-b commented on code in PR #499:
URL: https://github.com/apache/polaris/pull/499#discussion_r1863977044
##########
polaris-core/src/main/java/org/apache/polaris/core/auth/AuthenticatedPolarisPrincipal.java:
##########
@@ -18,55 +18,38 @@
*/
package org.apache.polaris.core.auth;
-import jakarta.annotation.Nonnull;
-import java.util.List;
import java.util.Set;
-import org.apache.polaris.core.entity.PolarisEntity;
-import org.apache.polaris.core.entity.PrincipalRoleEntity;
+import org.apache.polaris.core.entity.PrincipalEntity;
/** Holds the results of request authentication. */
-public class AuthenticatedPolarisPrincipal implements java.security.Principal {
- private final PolarisEntity principalEntity;
- private final Set<String> activatedPrincipalRoleNames;
- // only known and set after the above set of principal role names have been
resolved. Before
- // this, this list is null
- private List<PrincipalRoleEntity> activatedPrincipalRoles;
+public interface AuthenticatedPolarisPrincipal extends java.security.Principal
{
- public AuthenticatedPolarisPrincipal(
- @Nonnull PolarisEntity principalEntity, @Nonnull Set<String>
activatedPrincipalRoles) {
- this.principalEntity = principalEntity;
- this.activatedPrincipalRoleNames = activatedPrincipalRoles;
- this.activatedPrincipalRoles = null;
- }
+ AuthenticatedPolarisPrincipal ANONYMOUS =
+ new AuthenticatedPolarisPrincipalImpl(-1, "anonymous", Set.of());
- @Override
- public String getName() {
- return principalEntity.getName();
- }
+ /**
+ * Principal entity ID obtained during request authentication (e.g. from the
authorization token).
+ *
+ * <p>Negative values indicate that a principal ID was not provided in
authenticated data,
+ * however, other authentic information about the principal (e.g. name,
roles) may still be
+ * available.
+ */
+ long getPrincipalEntityId();
- public PolarisEntity getPrincipalEntity() {
- return principalEntity;
- }
-
- public Set<String> getActivatedPrincipalRoleNames() {
- return activatedPrincipalRoleNames;
- }
+ /** A sub-set of the assigned roles that are deemed effective in requests
using this principal. */
+ Set<String> getActivatedPrincipalRoleNames();
- public List<PrincipalRoleEntity> getActivatedPrincipalRoles() {
- return activatedPrincipalRoles;
+ static AuthenticatedPolarisPrincipal create(long entityId, String name,
Set<String> roles) {
+ return new AuthenticatedPolarisPrincipalImpl(entityId, name, roles);
}
- public void setActivatedPrincipalRoles(List<PrincipalRoleEntity>
activatedPrincipalRoles) {
- this.activatedPrincipalRoles = activatedPrincipalRoles;
+ static AuthenticatedPolarisPrincipal fromEntity(PrincipalEntity entity) {
Review Comment:
removed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]