diff --git a/presto-main/src/main/java/com/facebook/presto/sql/MaterializedViewUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/MaterializedViewUtils.java index 2017fa8c199c1..eea0746d1841d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/MaterializedViewUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/MaterializedViewUtils.java @@ -109,7 +109,7 @@ public static Session buildOwnerSession(Session session, Optional owner, public static Identity getOwnerIdentity(Optional owner, Session session) { if (owner.isPresent() && !owner.get().equals(session.getIdentity().getUser())) { - return new Identity(owner.get(), Optional.empty()); + return new Identity(owner.get(), Optional.empty(), session.getIdentity().getExtraCredentials()); } return session.getIdentity(); } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java index bf56caa10df19..ad3211e18e90a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java @@ -2803,7 +2803,7 @@ private RelationType analyzeView(Query query, QualifiedObjectName name, Optional Identity identity; AccessControl viewAccessControl; if (owner.isPresent() && !owner.get().equals(session.getIdentity().getUser())) { - identity = new Identity(owner.get(), Optional.empty()); + identity = new Identity(owner.get(), Optional.empty(), session.getIdentity().getExtraCredentials()); viewAccessControl = new ViewAccessControl(accessControl); } else { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/security/Identity.java b/presto-spi/src/main/java/com/facebook/presto/spi/security/Identity.java index ac3cfd2263f69..be68b06623cc9 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/security/Identity.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/security/Identity.java @@ -56,6 +56,11 @@ public Identity(String user, Optional principal) this(user, principal, emptyMap(), emptyMap(), emptyMap(), Optional.empty(), Optional.empty()); } + public Identity(String user, Optional principal, Map extraCredentials) + { + this(user, principal, emptyMap(), extraCredentials, emptyMap(), Optional.empty(), Optional.empty()); + } + public Identity( String user, Optional principal,