diff --git a/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/WebServer.java b/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/WebServer.java index 74861a7b9ab..5a032e47440 100644 --- a/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/WebServer.java +++ b/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/WebServer.java @@ -17,31 +17,17 @@ */ package org.apache.drill.yarn.appMaster.http; -import static org.apache.drill.exec.server.rest.auth.DrillUserPrincipal.ADMIN_ROLE; - -import java.math.BigInteger; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.KeyStore; -import java.security.Principal; -import java.security.SecureRandom; -import java.security.cert.X509Certificate; -import java.util.Collections; -import java.util.Date; -import java.util.EnumSet; -import java.util.Set; - -import javax.servlet.DispatcherType; -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpSessionEvent; -import javax.servlet.http.HttpSessionListener; - +import com.google.common.collect.ImmutableSet; +import com.typesafe.config.Config; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpSession; +import jakarta.servlet.http.HttpSessionEvent; +import jakarta.servlet.http.HttpSessionListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.drill.exec.server.rest.CsrfTokenInjectFilter; import org.apache.drill.exec.server.rest.CsrfTokenValidateFilter; -import com.google.common.collect.ImmutableSet; import org.apache.drill.exec.util.SecureRandomStringUtils; import org.apache.drill.yarn.appMaster.Dispatcher; import org.apache.drill.yarn.core.DrillOnYarnConfig; @@ -52,24 +38,24 @@ import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder; import org.bouncycastle.operator.ContentSigner; import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; +import org.eclipse.jetty.ee9.nested.SessionHandler; +import org.eclipse.jetty.ee9.security.ConstraintSecurityHandler; import org.eclipse.jetty.http.HttpVersion; -import org.eclipse.jetty.security.ConstraintSecurityHandler; import org.eclipse.jetty.security.DefaultIdentityService; -import org.eclipse.jetty.security.DefaultUserIdentity; import org.eclipse.jetty.security.IdentityService; import org.eclipse.jetty.security.LoginService; import org.eclipse.jetty.security.SecurityHandler; +import org.eclipse.jetty.security.UserIdentity; import org.eclipse.jetty.security.authentication.FormAuthenticator; import org.eclipse.jetty.security.authentication.SessionAuthentication; +import org.eclipse.jetty.security.internal.DefaultUserIdentity; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SslConnectionFactory; -import org.eclipse.jetty.server.UserIdentity; import org.eclipse.jetty.server.handler.ErrorHandler; -import org.eclipse.jetty.server.session.SessionHandler; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; @@ -78,7 +64,19 @@ import org.glassfish.jersey.servlet.ServletContainer; import org.joda.time.DateTime; -import com.typesafe.config.Config; +import java.math.BigInteger; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.KeyStore; +import java.security.Principal; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; +import java.util.Collections; +import java.util.Date; +import java.util.EnumSet; +import java.util.Set; + +import static org.apache.drill.exec.server.rest.auth.DrillUserPrincipal.ADMIN_ROLE; /** * Wrapper around the Jetty web server. diff --git a/exec/java-exec/pom.xml b/exec/java-exec/pom.xml index 13f12230c75..669c279bae0 100644 --- a/exec/java-exec/pom.xml +++ b/exec/java-exec/pom.xml @@ -168,16 +168,6 @@ jetty-server ${jetty.version} - - org.eclipse.jetty.ee9 - jetty-ee9-security - ${jetty.version} - - - org.eclipse.jetty.ee9 - jetty-ee9-servlet - ${jetty.version} - org.eclipse.jetty jetty-servlet diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java index 0ee7d2f850c..ab4771cc99c 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java @@ -17,7 +17,7 @@ */ package org.apache.drill.exec.server.options; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * Manager for Drill {@link OptionValue options}. Implementations must be case-insensitive to the name of an option. diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CredentialResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CredentialResources.java index 4de88439f30..3d816081ee0 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CredentialResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CredentialResources.java @@ -20,8 +20,21 @@ import io.swagger.v3.oas.annotations.ExternalDocumentation; import io.swagger.v3.oas.annotations.Operation; -import org.apache.drill.common.logical.StoragePluginConfig.AuthMode; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.FormParam; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.Response.Status; +import jakarta.ws.rs.core.SecurityContext; import org.apache.drill.common.logical.StoragePluginConfig; +import org.apache.drill.common.logical.StoragePluginConfig.AuthMode; import org.apache.drill.common.logical.security.CredentialsProvider; import org.apache.drill.exec.server.rest.DrillRestServer.UserAuthEnabled; import org.apache.drill.exec.server.rest.StorageResources.StoragePluginModel; @@ -34,19 +47,6 @@ import javax.annotation.security.RolesAllowed; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; -import javax.ws.rs.core.SecurityContext; import javax.xml.bind.annotation.XmlRootElement; import java.util.Collections; import java.util.Comparator; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CsrfTokenInjectFilter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CsrfTokenInjectFilter.java index dcedab2fdbb..be687281794 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CsrfTokenInjectFilter.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CsrfTokenInjectFilter.java @@ -17,15 +17,16 @@ */ package org.apache.drill.exec.server.rest; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.HttpMethod; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpSession; +import jakarta.ws.rs.HttpMethod; + import java.io.IOException; /** diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CsrfTokenValidateFilter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CsrfTokenValidateFilter.java index 439d89f73ce..ff051d879e7 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CsrfTokenValidateFilter.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/CsrfTokenValidateFilter.java @@ -18,15 +18,16 @@ package org.apache.drill.exec.server.rest; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.HttpMethod; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.HttpMethod; + import java.io.IOException; /** diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java index 54e3244dcec..b0f5c34a928 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java @@ -21,23 +21,25 @@ import com.fasterxml.jackson.jaxrs.base.JsonMappingExceptionMapper; import com.fasterxml.jackson.jaxrs.base.JsonParseExceptionMapper; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; -import io.swagger.v3.oas.annotations.OpenAPIDefinition; -import io.swagger.v3.oas.annotations.info.Contact; -import io.swagger.v3.oas.annotations.info.Info; -import io.swagger.v3.oas.annotations.info.License; - import com.google.common.base.Strings; import freemarker.cache.ClassTemplateLoader; import freemarker.cache.FileTemplateLoader; import freemarker.cache.MultiTemplateLoader; import freemarker.cache.TemplateLoader; -import freemarker.cache.WebappTemplateLoader; import freemarker.core.HTMLOutputFormat; +import freemarker.ext.jakarta.servlet.WebappTemplateLoader; import freemarker.template.Configuration; import io.netty.util.concurrent.DefaultPromise; +import io.netty.util.concurrent.EventExecutor; import io.netty.util.concurrent.Promise; import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource; -import io.netty.util.concurrent.EventExecutor; +import io.swagger.v3.oas.annotations.OpenAPIDefinition; +import io.swagger.v3.oas.annotations.info.Contact; +import io.swagger.v3.oas.annotations.info.Info; +import io.swagger.v3.oas.annotations.info.License; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpSession; import org.apache.drill.common.config.DrillConfig; import org.apache.drill.exec.ExecConstants; import org.apache.drill.exec.memory.BufferAllocator; @@ -67,9 +69,6 @@ import org.slf4j.LoggerFactory; import javax.inject.Inject; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; import java.io.File; import java.io.IOException; import java.net.InetAddress; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java index 6cdba717c20..9e67342ce0b 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java @@ -17,36 +17,28 @@ */ package org.apache.drill.exec.server.rest; -import java.net.URL; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import javax.annotation.security.PermitAll; -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.SecurityContext; -import javax.xml.bind.annotation.XmlRootElement; - +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.v3.oas.annotations.ExternalDocumentation; -import io.swagger.v3.oas.annotations.Operation; import com.google.common.base.Joiner; import com.google.common.base.Strings; import com.google.common.collect.Sets; +import io.swagger.v3.oas.annotations.ExternalDocumentation; +import io.swagger.v3.oas.annotations.Operation; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.SecurityContext; import org.apache.drill.common.config.DrillConfig; import org.apache.drill.exec.ExecConstants; import org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint; import org.apache.drill.exec.server.Drillbit; -import org.apache.drill.exec.server.options.OptionManager; import org.apache.drill.exec.server.DrillbitContext; +import org.apache.drill.exec.server.options.OptionManager; import org.apache.drill.exec.server.rest.DrillRestServer.UserAuthEnabled; import org.apache.drill.exec.server.rest.auth.AuthDynamicFeature; import org.apache.drill.exec.server.rest.auth.DrillUserPrincipal; @@ -63,7 +55,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.annotation.JsonCreator; +import javax.annotation.security.PermitAll; +import javax.annotation.security.RolesAllowed; +import javax.inject.Inject; +import javax.xml.bind.annotation.XmlRootElement; +import java.net.URL; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import static org.apache.drill.exec.server.rest.auth.DrillUserPrincipal.ADMIN_ROLE; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogInLogOutResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogInLogOutResources.java index 1392a16730f..564d3202896 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogInLogOutResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogInLogOutResources.java @@ -17,35 +17,35 @@ */ package org.apache.drill.exec.server.rest; +import com.google.common.annotations.VisibleForTesting; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.UriBuilder; +import jakarta.ws.rs.core.UriInfo; import org.apache.commons.lang3.StringUtils; import org.apache.drill.common.config.DrillConfig; import org.apache.drill.exec.ExecConstants; import org.apache.drill.exec.server.rest.auth.AuthDynamicFeature; import org.apache.drill.exec.server.rest.auth.DrillHttpSecurityHandlerProvider; import org.apache.drill.exec.work.WorkManager; -import com.google.common.annotations.VisibleForTesting; +import org.eclipse.jetty.ee9.security.authentication.SessionAuthentication; +import org.eclipse.jetty.security.Authenticator; import org.eclipse.jetty.security.authentication.FormAuthenticator; -import org.eclipse.jetty.security.authentication.SessionAuthentication; -import org.eclipse.jetty.util.security.Constraint; import org.glassfish.jersey.server.mvc.Viewable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.security.PermitAll; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; -import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriInfo; import java.net.URI; import java.net.URLDecoder; import java.util.Set; @@ -168,11 +168,11 @@ public class MainLoginPageModel { } public boolean isSpnegoEnabled() { - return authEnabled && configuredMechs.contains(Constraint.__SPNEGO_AUTH); + return authEnabled && configuredMechs.contains(Authenticator.SPNEGO_AUTH); } public boolean isFormEnabled() { - return authEnabled && configuredMechs.contains(Constraint.__FORM_AUTH); + return authEnabled && configuredMechs.contains(Authenticator.FORM_AUTH); } public String getError() { diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogsResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogsResources.java index ff77563ff3b..c8f09afe5e3 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogsResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogsResources.java @@ -21,6 +21,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Preconditions; import com.google.common.collect.Sets; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.SecurityContext; import org.apache.drill.common.exceptions.DrillRuntimeException; import org.apache.drill.exec.ExecConstants; import org.apache.drill.exec.work.WorkManager; @@ -33,16 +41,7 @@ import javax.annotation.security.RolesAllowed; import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.SecurityContext; import javax.xml.bind.annotation.XmlRootElement; - import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; @@ -61,7 +60,8 @@ public class LogsResources { private static final Logger logger = LoggerFactory.getLogger(LogsResources.class); @Inject DrillRestServer.UserAuthEnabled authEnabled; - @Inject SecurityContext sc; + @Inject + SecurityContext sc; @Inject WorkManager work; private static final FileFilter file_filter = new FileFilter() { diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/MetricsResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/MetricsResources.java index 8e6505eb3a1..9172eea8283 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/MetricsResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/MetricsResources.java @@ -17,25 +17,26 @@ */ package org.apache.drill.exec.server.rest; -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; - +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.SecurityContext; import org.apache.drill.exec.server.rest.DrillRestServer.UserAuthEnabled; import org.apache.drill.exec.server.rest.auth.DrillUserPrincipal; import org.glassfish.jersey.server.mvc.Viewable; +import javax.annotation.security.RolesAllowed; +import javax.inject.Inject; + @Path("/metrics") @RolesAllowed(DrillUserPrincipal.AUTHENTICATED_ROLE) public class MetricsResources { static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(MetricsResources.class); @Inject UserAuthEnabled authEnabled; - @Inject SecurityContext sc; + @Inject + SecurityContext sc; @GET @Produces(MediaType.TEXT_HTML) diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/OAuthRequests.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/OAuthRequests.java index 0ffddea293b..8e5db782e9e 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/OAuthRequests.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/OAuthRequests.java @@ -18,6 +18,10 @@ package org.apache.drill.exec.server.rest; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.Response.Status; +import jakarta.ws.rs.core.SecurityContext; import okhttp3.OkHttpClient; import okhttp3.OkHttpClient.Builder; import okhttp3.Request; @@ -39,10 +43,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; -import javax.ws.rs.core.SecurityContext; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -51,7 +51,7 @@ import java.util.Map; import java.util.stream.Collectors; -public class OAuthRequests { +public class OAuthRequests { private static final Logger logger = LoggerFactory.getLogger(OAuthRequests.class); private static final String OAUTH_SUCCESS_PAGE = "/rest/storage/success.html"; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/QueryResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/QueryResources.java index 1c4b2c53ccb..34af279d886 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/QueryResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/QueryResources.java @@ -17,11 +17,24 @@ */ package org.apache.drill.exec.server.rest; -import io.swagger.v3.oas.annotations.ExternalDocumentation; -import io.swagger.v3.oas.annotations.Operation; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; +import io.swagger.v3.oas.annotations.ExternalDocumentation; +import io.swagger.v3.oas.annotations.Operation; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.BadRequestException; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.FormParam; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.Form; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.StreamingOutput; import org.apache.drill.common.config.DrillConfig; import org.apache.drill.exec.ExecConstants; import org.apache.drill.exec.server.rest.DrillRestServer.UserAuthEnabled; @@ -36,20 +49,6 @@ import javax.annotation.security.RolesAllowed; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.BadRequestException; -import javax.ws.rs.Consumes; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.Form; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; -import javax.ws.rs.core.StreamingOutput; - import java.io.IOException; import java.io.OutputStream; import java.util.Collections; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StatusResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StatusResources.java index c0ffbea1948..97f14fb0ca5 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StatusResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StatusResources.java @@ -17,33 +17,23 @@ */ package org.apache.drill.exec.server.rest; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.LinkedList; -import java.util.List; - -import javax.annotation.security.PermitAll; -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; -import javax.ws.rs.core.UriInfo; -import javax.xml.bind.annotation.XmlRootElement; - +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.ExternalDocumentation; import io.swagger.v3.oas.annotations.Operation; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.FormParam; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.UriInfo; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.apache.drill.exec.ExecConstants; @@ -57,14 +47,24 @@ import org.apache.drill.exec.work.WorkManager; import org.apache.http.client.methods.HttpGet; import org.glassfish.jersey.server.mvc.Viewable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; +import javax.annotation.security.PermitAll; +import javax.annotation.security.RolesAllowed; +import javax.inject.Inject; +import javax.xml.bind.annotation.XmlRootElement; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.List; @Path("/") @PermitAll public class StatusResources { - static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(StatusResources.class); + static final Logger logger = LoggerFactory.getLogger(StatusResources.class); public static final String REST_API_SUFFIX = ".json"; public static final String PATH_STATUS_JSON = "/status" + REST_API_SUFFIX; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java index 61d85c5bd5e..dea4fc61f58 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java @@ -17,34 +17,22 @@ */ package org.apache.drill.exec.server.rest; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Spliterator; -import java.util.Spliterators; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.SecurityContext; -import javax.xml.bind.annotation.XmlRootElement; - import io.swagger.v3.oas.annotations.ExternalDocumentation; import io.swagger.v3.oas.annotations.Operation; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.DELETE; +import jakarta.ws.rs.FormParam; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.SecurityContext; import org.apache.commons.lang3.StringUtils; import org.apache.drill.common.logical.StoragePluginConfig; import org.apache.drill.common.logical.StoragePluginConfig.AuthMode; @@ -57,10 +45,20 @@ import org.apache.drill.exec.store.StoragePluginRegistry.PluginNotFoundException; import org.apache.drill.exec.work.WorkManager; import org.glassfish.jersey.server.mvc.Viewable; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.annotation.security.RolesAllowed; +import javax.inject.Inject; +import javax.xml.bind.annotation.XmlRootElement; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Spliterator; +import java.util.Spliterators; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; + import static org.apache.drill.exec.server.rest.auth.DrillUserPrincipal.ADMIN_ROLE; // Serialization of plugins to JSON is handled by the Jetty framework diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ViewableWithPermissions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ViewableWithPermissions.java index 77c8e20411b..b3e68450aee 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ViewableWithPermissions.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ViewableWithPermissions.java @@ -18,11 +18,11 @@ package org.apache.drill.exec.server.rest; import com.google.common.collect.ImmutableMap; +import jakarta.ws.rs.core.SecurityContext; import org.apache.drill.exec.server.rest.auth.AuthDynamicFeature; import org.apache.drill.exec.server.rest.auth.DrillUserPrincipal; import org.glassfish.jersey.server.mvc.Viewable; -import javax.ws.rs.core.SecurityContext; import java.util.Map; /** diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebServer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebServer.java index f50e504ed27..acea4338083 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebServer.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebServer.java @@ -18,11 +18,13 @@ package org.apache.drill.exec.server.rest; import com.codahale.metrics.MetricRegistry; -import import com.codahale.metrics.servlets.MetricsServlet; import com.codahale.metrics.servlets.ThreadDumpServlet; +import jakarta.servlet.DispatcherType; import jakarta.servlet.Servlet; import jakarta.servlet.http.HttpSession; +import jakarta.servlet.http.HttpSessionEvent; +import jakarta.servlet.http.HttpSessionListener; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; @@ -44,30 +46,29 @@ import org.apache.drill.exec.server.rest.header.ResponseHeadersSettingFilter; import org.apache.drill.exec.server.rest.ssl.SslContextFactoryConfigurator; import org.apache.drill.exec.work.WorkManager; -import org.eclipse.jetty.ee9.nested.ErrorHandler; -import org.eclipse.jetty.ee9.nested.SessionHandler; -import org.eclipse.jetty.ee9.security.authentication.SessionAuthentication; -import org.eclipse.jetty.ee9.servlet.DefaultServlet; -import org.eclipse.jetty.ee9.servlet.FilterHolder; -import org.eclipse.jetty.ee9.servlet.ServletContextHandler; -import org.eclipse.jetty.ee9.servlet.ServletHolder; +import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.http.HttpVersion; import org.eclipse.jetty.security.SecurityHandler; +import org.eclipse.jetty.security.authentication.SessionAuthentication; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; -import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SslConnectionFactory; +import org.eclipse.jetty.server.handler.ErrorHandler; +import org.eclipse.jetty.server.session.SessionHandler; +import org.eclipse.jetty.servlet.FilterHolder; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.servlets.CrossOriginFilter; +import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.glassfish.jersey.servlet.ServletContainer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.DispatcherType; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebUtils.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebUtils.java index e34d2fdc8e4..ec673ae4979 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebUtils.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebUtils.java @@ -17,6 +17,8 @@ */ package org.apache.drill.exec.server.rest; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpSession; import org.apache.drill.common.config.DrillConfig; import org.apache.drill.exec.ExecConstants; import org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint; @@ -31,8 +33,6 @@ import org.apache.http.ssl.SSLContexts; import javax.net.ssl.SSLContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.MalformedURLException; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/AuthDynamicFeature.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/AuthDynamicFeature.java index fa56cc2aef2..04fea19351d 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/AuthDynamicFeature.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/AuthDynamicFeature.java @@ -17,22 +17,22 @@ */ package org.apache.drill.exec.server.rest.auth; +import jakarta.annotation.Priority; +import jakarta.annotation.security.PermitAll; +import jakarta.annotation.security.RolesAllowed; +import jakarta.ws.rs.Priorities; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.DynamicFeature; +import jakarta.ws.rs.container.ResourceInfo; +import jakarta.ws.rs.core.FeatureContext; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.SecurityContext; import org.apache.drill.exec.server.rest.WebServerConstants; import org.glassfish.jersey.server.model.AnnotatedMethod; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Priority; -import javax.annotation.security.PermitAll; -import javax.annotation.security.RolesAllowed; -import javax.ws.rs.Priorities; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.DynamicFeature; -import javax.ws.rs.container.ResourceInfo; -import javax.ws.rs.core.FeatureContext; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.SecurityContext; import java.net.URI; import java.net.URLEncoder; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillErrorHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillErrorHandler.java index d6572c0214a..555825fd34f 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillErrorHandler.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillErrorHandler.java @@ -19,7 +19,7 @@ import jakarta.servlet.http.HttpServletRequest; import org.apache.drill.exec.server.rest.WebServerConstants; -import org.eclipse.jetty.ee9.nested.ErrorHandler; +import org.eclipse.jetty.server.handler.ErrorHandler; import java.io.IOException; import java.io.Writer; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillHttpConstraintSecurityHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillHttpConstraintSecurityHandler.java index d0c53acf1bc..031b23d8bf8 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillHttpConstraintSecurityHandler.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillHttpConstraintSecurityHandler.java @@ -21,9 +21,9 @@ import org.apache.drill.common.exceptions.DrillException; import org.apache.drill.exec.rpc.security.plain.PlainFactory; import org.apache.drill.exec.server.DrillbitContext; -import org.eclipse.jetty.ee9.security.ConstraintSecurityHandler; -import org.eclipse.jetty.ee9.security.authentication.LoginAuthenticator; +import org.eclipse.jetty.security.ConstraintSecurityHandler; import org.eclipse.jetty.security.LoginService; +import org.eclipse.jetty.security.authentication.LoginAuthenticator; import java.util.Collections; import java.util.Set; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillHttpSecurityHandlerProvider.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillHttpSecurityHandlerProvider.java index 9c88dfbd376..020b793bf87 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillHttpSecurityHandlerProvider.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillHttpSecurityHandlerProvider.java @@ -32,12 +32,12 @@ import org.apache.drill.exec.server.DrillbitContext; import org.apache.drill.exec.server.rest.WebServerConstants; import org.apache.drill.exec.server.rest.header.ResponseHeadersSettingFilter; -import org.eclipse.jetty.ee9.nested.Handler; -import org.eclipse.jetty.ee9.nested.Request; -import org.eclipse.jetty.ee9.security.ConstraintSecurityHandler; -import org.eclipse.jetty.ee9.security.authentication.SessionAuthentication; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.security.Authenticator; +import org.eclipse.jetty.security.ConstraintSecurityHandler; +import org.eclipse.jetty.security.authentication.SessionAuthentication; +import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.Request; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillRestLoginService.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillRestLoginService.java index 0f9c0b1bbfd..18308537cf9 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillRestLoginService.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillRestLoginService.java @@ -29,9 +29,8 @@ import org.eclipse.jetty.security.DefaultIdentityService; import org.eclipse.jetty.security.IdentityService; import org.eclipse.jetty.security.LoginService; -import org.eclipse.jetty.security.UserIdentity; import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.Session; +import org.eclipse.jetty.server.UserIdentity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,6 +38,7 @@ import java.security.Principal; import java.util.function.Function; +; ; /** diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoAuthenticator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoAuthenticator.java index b031e21f62f..f894a1c8b91 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoAuthenticator.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoAuthenticator.java @@ -25,16 +25,16 @@ import jakarta.servlet.http.HttpSession; import org.apache.drill.exec.server.rest.WebServerConstants; import org.apache.parquet.Strings; -import org.eclipse.jetty.ee9.nested.Authentication; -import org.eclipse.jetty.ee9.nested.Request; -import org.eclipse.jetty.ee9.security.UserAuthentication; -import org.eclipse.jetty.ee9.security.authentication.ConfigurableSpnegoAuthenticator; -import org.eclipse.jetty.ee9.security.ServerAuthException; -import org.eclipse.jetty.ee9.security.authentication.DeferredAuthentication; -import org.eclipse.jetty.ee9.security.authentication.SessionAuthentication; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.http.HttpVersion; -import org.eclipse.jetty.security.UserIdentity; +import org.eclipse.jetty.security.ServerAuthException; +import org.eclipse.jetty.security.UserAuthentication; +import org.eclipse.jetty.security.authentication.ConfigurableSpnegoAuthenticator; +import org.eclipse.jetty.security.authentication.DeferredAuthentication; +import org.eclipse.jetty.security.authentication.SessionAuthentication; +import org.eclipse.jetty.server.Authentication; +import org.eclipse.jetty.server.Request; +import org.eclipse.jetty.server.UserIdentity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoLoginService.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoLoginService.java index a456e42ad49..c01d2c552f2 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoLoginService.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoLoginService.java @@ -27,8 +27,8 @@ import org.apache.hadoop.security.HadoopKerberosName; import org.apache.hadoop.security.UserGroupInformation; import org.eclipse.jetty.security.DefaultIdentityService; -import org.eclipse.jetty.security.SPNEGOLoginService; -import org.eclipse.jetty.security.UserIdentity; +import org.eclipse.jetty.server.UserIdentity; +import org.eclipse.jetty.security.ConfigurableSpnegoLoginService; import org.ietf.jgss.GSSContext; import org.ietf.jgss.GSSCredential; import org.ietf.jgss.GSSException; @@ -45,11 +45,13 @@ import java.security.PrivilegedExceptionAction; import java.util.Base64; +; + /** * Custom implementation of DrillSpnegoLoginService to avoid the need of passing targetName in a config file, * to include the SPNEGO OID and the way UserIdentity is created. */ -public class DrillSpnegoLoginService extends SPNEGOLoginService { +public class DrillSpnegoLoginService extends ConfigurableSpnegoLoginService { private static final Logger logger = LoggerFactory.getLogger(DrillSpnegoLoginService.class); private static final String TARGET_NAME_FIELD_NAME = "_targetName"; @@ -75,7 +77,7 @@ public DrillSpnegoLoginService(DrillbitContext drillBitContext) throws DrillExce protected void doStart() throws Exception { // Override the parent implementation, setting _targetName to be the serverPrincipal // without the need for a one-line file to do the same thing. - final Field targetNameField = SPNEGOLoginService.class.getDeclaredField(TARGET_NAME_FIELD_NAME); + final Field targetNameField = ConfigurableSpnegoLoginService.class.getDeclaredField(TARGET_NAME_FIELD_NAME); targetNameField.setAccessible(true); targetNameField.set(this, spnegoConfig.getSpnegoPrincipal()); } diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/FormSecurityHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/FormSecurityHandler.java index 3b5fc459d8f..dc2243b213f 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/FormSecurityHandler.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/FormSecurityHandler.java @@ -21,8 +21,8 @@ import org.apache.drill.exec.rpc.security.plain.PlainFactory; import org.apache.drill.exec.server.DrillbitContext; import org.apache.drill.exec.server.rest.WebServerConstants; -import org.eclipse.jetty.ee9.security.authentication.FormAuthenticator; import org.eclipse.jetty.security.Authenticator; +import org.eclipse.jetty.security.authentication.FormAuthenticator; public class FormSecurityHandler extends DrillHttpConstraintSecurityHandler { @Override diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/HttpBasicAuthSecurityHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/HttpBasicAuthSecurityHandler.java index 57cbeb8f3ff..1863768e668 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/HttpBasicAuthSecurityHandler.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/HttpBasicAuthSecurityHandler.java @@ -20,8 +20,8 @@ import org.apache.drill.common.exceptions.DrillException; import org.apache.drill.exec.rpc.security.plain.PlainFactory; import org.apache.drill.exec.server.DrillbitContext; -import org.eclipse.jetty.ee9.security.authentication.BasicAuthenticator; import org.eclipse.jetty.security.Authenticator; +import org.eclipse.jetty.security.authentication.BasicAuthenticator; /** * Implement HTTP Basic authentication for REST API access diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/header/ResponseHeadersSettingFilter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/header/ResponseHeadersSettingFilter.java index c521e8698b9..46fcd1c326b 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/header/ResponseHeadersSettingFilter.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/header/ResponseHeadersSettingFilter.java @@ -21,13 +21,13 @@ import org.apache.drill.common.config.DrillConfig; import org.apache.drill.exec.ExecConstants; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java index 692b72bf60b..9dec61720b4 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java @@ -17,32 +17,23 @@ */ package org.apache.drill.exec.server.rest.profile; -import java.nio.charset.StandardCharsets; -import java.text.SimpleDateFormat; -import java.util.Collections; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.SecurityContext; -import javax.ws.rs.core.UriInfo; -import javax.xml.bind.annotation.XmlRootElement; - +import com.google.common.base.Joiner; +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; +import com.google.common.collect.Lists; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.UriInfo; import org.apache.drill.common.config.DrillConfig; import org.apache.drill.common.exceptions.DrillRuntimeException; import org.apache.drill.common.exceptions.UserException; @@ -54,22 +45,31 @@ import org.apache.drill.exec.proto.UserBitShared.QueryInfo; import org.apache.drill.exec.proto.UserBitShared.QueryProfile; import org.apache.drill.exec.proto.helper.QueryIdHelper; -import org.apache.drill.exec.server.rest.DrillRestServer.UserAuthEnabled; import org.apache.drill.exec.server.QueryProfileStoreContext; +import org.apache.drill.exec.server.rest.DrillRestServer.UserAuthEnabled; import org.apache.drill.exec.server.rest.ViewableWithPermissions; import org.apache.drill.exec.server.rest.auth.DrillUserPrincipal; import org.apache.drill.exec.store.sys.PersistentStore; import org.apache.drill.exec.store.sys.PersistentStoreProvider; import org.apache.drill.exec.work.WorkManager; import org.apache.drill.exec.work.foreman.Foreman; + import org.glassfish.jersey.media.multipart.FormDataParam; import org.glassfish.jersey.server.mvc.Viewable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Joiner; -import com.google.common.collect.Lists; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; + +import javax.annotation.security.RolesAllowed; +import javax.inject.Inject; +import javax.xml.bind.annotation.XmlRootElement; +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.util.Collections; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; import static org.owasp.encoder.Encode.forHtml; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileWrapper.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileWrapper.java index d942a6772cb..b38547e5f71 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileWrapper.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileWrapper.java @@ -17,17 +17,9 @@ */ package org.apache.drill.exec.server.rest.profile; -import static com.fasterxml.jackson.databind.SerializationFeature.INDENT_OUTPUT; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import java.util.function.Predicate; -import java.util.stream.Collectors; - +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.CaseFormat; +import jakarta.servlet.http.HttpServletRequest; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.drill.common.config.DrillConfig; import org.apache.drill.common.util.JacksonUtils; @@ -42,11 +34,19 @@ import org.apache.drill.exec.server.options.OptionValue; import org.apache.drill.exec.server.rest.WebServer; import org.apache.drill.exec.server.rest.WebUtils; -import com.google.common.base.CaseFormat; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.databind.ObjectMapper; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.function.Predicate; +import java.util.stream.Collectors; -import javax.servlet.http.HttpServletRequest; +import static com.fasterxml.jackson.databind.SerializationFeature.INDENT_OUTPUT; /** * Wrapper class for a {@link #profile query profile}, so it to be presented through web UI. @@ -54,7 +54,7 @@ public class ProfileWrapper { private static final String ESTIMATED_LABEL = " (Estimated)"; private static final String NOT_AVAILABLE_LABEL = "Not Available"; - private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ProfileWrapper.class); + private static final Logger logger = LoggerFactory.getLogger(ProfileWrapper.class); private static final ObjectMapper mapper = JacksonUtils.createObjectMapper().enable(INDENT_OUTPUT); private final QueryProfile profile; diff --git a/pom.xml b/pom.xml index b75338c9611..64dedd65104 100644 --- a/pom.xml +++ b/pom.xml @@ -78,7 +78,7 @@ 3.0.5 1.0 1 - 2.3.30 + 2.3.33 32.1.2-jre 3.3.6 2.2 @@ -98,8 +98,8 @@ 3.29.2-GA 3.0.0 2.0.1.Final - 2.40 - 12.0.9 + 4.0.0-M1 + 11.0.24 1.47 5.13.0 2.12.5