This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/master by this push: new b3adfafa95 TINKERPOP-2981 Removed deprecated code around AbstractAuthenticationHandler CTR b3adfafa95 is described below commit b3adfafa955c5d0f542eeac0584375eeaa7d70af Author: Stephen Mallette <stepm...@amazon.com> AuthorDate: Mon Dec 4 12:18:43 2023 -0500 TINKERPOP-2981 Removed deprecated code around AbstractAuthenticationHandler CTR --- CHANGELOG.asciidoc | 5 ++++- docs/src/upgrade/release-4.x.x.asciidoc | 7 ++++++ .../gremlin/server/AbstractChannelizer.java | 26 ++++------------------ .../gremlin/server/channel/HttpChannelizer.java | 2 +- .../server/channel/WebSocketChannelizer.java | 2 +- .../handler/AbstractAuthenticationHandler.java | 8 ------- .../handler/HttpBasicAuthenticationHandler.java | 9 -------- .../SaslAndHttpBasicAuthenticationHandler.java | 10 +-------- .../server/handler/SaslAuthenticationHandler.java | 8 ------- 9 files changed, 18 insertions(+), 59 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 368353a533..c59d1039e6 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -24,7 +24,10 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima === TinkerPop 4.0.0 (NOT OFFICIALLY RELEASED YET) * Added support for deserialization of `Set` for `gremlin-javascript`. -* Added integer overflow checks. +* Added integer overflow checks for `sum()`. +* Gremlin Server only supports instantiation of `authentication.authenticationHandler` with three-arg constructor. +* Removed previously deprecated two-arg constructors for `authentication.authenticationHandler` implementations. +* Removed previously deprecated one-arg constructor for `AbstractAuthenticationHandler`. * Deprecated `withEmbedded()` and `withRemote()` options on `AnonymousTraversalSource`. * Added `with()` on `AnonymousTraversalSource` to cover both embedded and remote creation options. * Removed the deprecated `withGraph()` option from `AnonymousTraversalSource`. diff --git a/docs/src/upgrade/release-4.x.x.asciidoc b/docs/src/upgrade/release-4.x.x.asciidoc index c3bd27412a..ddaf969d05 100644 --- a/docs/src/upgrade/release-4.x.x.asciidoc +++ b/docs/src/upgrade/release-4.x.x.asciidoc @@ -84,4 +84,11 @@ skipped with incorrect result. ==== Graph System Providers +===== AbstractAuthenticatorHandler Constructor + +The deprecated one-arg constructor for `AbstractAuthenticationHandler` has been removed along with two-arg constructors +for the implementations. Gremlin Server formerly supported the two-arg `Authenticator`, and `Settings` constructor for +instantiating new custom instances. It now expects implementations of `AbstractAuthenticationHandler` to use a +three-arg constructor that takes `Authenticator`, `Authorizer`, and `Settings`. + ==== Graph Driver Providers diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java index c086ffae24..e487464fe7 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java @@ -185,28 +185,10 @@ public abstract class AbstractChannelizer extends ChannelInitializer<SocketChann try { final Class<?> clazz = Class.forName(settings.authentication.authenticationHandler); AbstractAuthenticationHandler aah; - try { - // the three arg constructor is the new form as a handler may need the authorizer in some cases - final Class<?>[] threeArgForm = new Class[]{Authenticator.class, Authorizer.class, Settings.class}; - final Constructor<?> twoArgConstructor = clazz.getDeclaredConstructor(threeArgForm); - return (AbstractAuthenticationHandler) twoArgConstructor.newInstance(authenticator, authorizer, settings); - } catch (Exception threeArgEx) { - try { - // the two arg constructor is the "old form" that existed prior to Authorizers. should probably - // deprecate this form - final Class<?>[] twoArgForm = new Class[]{Authenticator.class, Settings.class}; - final Constructor<?> twoArgConstructor = clazz.getDeclaredConstructor(twoArgForm); - - if (authorizer != null) { - logger.warn("There is an authorizer configured but the {} does not have a constructor of ({}, {}, {}) so it cannot be added", - clazz.getName(), Authenticator.class.getSimpleName(), Authorizer.class.getSimpleName(), Settings.class.getSimpleName()); - } - - return (AbstractAuthenticationHandler) twoArgConstructor.newInstance(authenticator, settings); - } catch (Exception twoArgEx) { - throw twoArgEx; - } - } + // the three arg constructor is the new form as a handler may need the authorizer in some cases + final Class<?>[] threeArgForm = new Class[]{Authenticator.class, Authorizer.class, Settings.class}; + final Constructor<?> threeArgConstructor = clazz.getDeclaredConstructor(threeArgForm); + return (AbstractAuthenticationHandler) threeArgConstructor.newInstance(authenticator, authorizer, settings); } catch (Exception ex) { logger.warn(ex.getMessage()); throw new IllegalStateException(String.format("Could not create/configure AuthenticationHandler %s", settings.authentication.authenticationHandler), ex); diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/HttpChannelizer.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/HttpChannelizer.java index 6d3bdbf2ff..0a9842ba9d 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/HttpChannelizer.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/HttpChannelizer.java @@ -92,7 +92,7 @@ public class HttpChannelizer extends AbstractChannelizer { final String authHandlerClass = settings.authentication.authenticationHandler; if (authHandlerClass == null) { //Keep things backwards compatible - return new HttpBasicAuthenticationHandler(authenticator, settings); + return new HttpBasicAuthenticationHandler(authenticator, authorizer, settings); } else { return createAuthenticationHandler(settings); } diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java index b8baed1b53..beec5cbd99 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java @@ -143,7 +143,7 @@ public class WebSocketChannelizer extends AbstractChannelizer { final String authenticationHandler = settings.authentication.authenticationHandler; if (authenticationHandler == null) { //Keep things backwards compatible - return new SaslAuthenticationHandler(authenticator, settings); + return new SaslAuthenticationHandler(authenticator, authorizer, settings); } else { return createAuthenticationHandler(settings); } diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/AbstractAuthenticationHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/AbstractAuthenticationHandler.java index 074e4ab873..7fa37953ed 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/AbstractAuthenticationHandler.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/AbstractAuthenticationHandler.java @@ -30,14 +30,6 @@ public abstract class AbstractAuthenticationHandler extends ChannelInboundHandle protected final Authenticator authenticator; protected final Authorizer authorizer; - /** - * @deprecated As of release 3.5.0, replaced by {@link #AbstractAuthenticationHandler(Authenticator, Authorizer)}. - */ - @Deprecated - public AbstractAuthenticationHandler(final Authenticator authenticator) { - this(authenticator, null); - } - public AbstractAuthenticationHandler(final Authenticator authenticator, final Authorizer authorizer) { this.authenticator = authenticator; this.authorizer = authorizer; diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthenticationHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthenticationHandler.java index 41fd3a42ee..55d4ee17ff 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthenticationHandler.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthenticationHandler.java @@ -49,20 +49,11 @@ import static org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.Credenti * @author Stephen Mallette (http://stephen.genoprime.com) */ public class HttpBasicAuthenticationHandler extends AbstractAuthenticationHandler { - private static final Logger logger = LoggerFactory.getLogger(HttpBasicAuthenticationHandler.class); private static final Logger auditLogger = LoggerFactory.getLogger(GremlinServer.AUDIT_LOGGER_NAME); private final Settings settings; private final Base64.Decoder decoder = Base64.getUrlDecoder(); - /** - * @deprecated As of release 3.5.0, replaced by {@link #HttpBasicAuthenticationHandler(Authenticator, Authorizer, Settings)}. - */ - @Deprecated - public HttpBasicAuthenticationHandler(final Authenticator authenticator, final Settings settings) { - this(authenticator, null, settings); - } - public HttpBasicAuthenticationHandler(final Authenticator authenticator, final Authorizer authorizer, final Settings settings) { super(authenticator, authorizer); this.settings = settings; diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAndHttpBasicAuthenticationHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAndHttpBasicAuthenticationHandler.java index 31dabd0046..d529a02461 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAndHttpBasicAuthenticationHandler.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAndHttpBasicAuthenticationHandler.java @@ -39,14 +39,6 @@ public class SaslAndHttpBasicAuthenticationHandler extends SaslAuthenticationHan private final String HTTP_AUTH = "http-authentication"; - /** - * @deprecated As of release 3.5.0, replaced by {@link #SaslAndHttpBasicAuthenticationHandler(Authenticator, Authorizer, Settings)}. - */ - @Deprecated - public SaslAndHttpBasicAuthenticationHandler(final Authenticator authenticator, final Settings settings) { - this(authenticator, null, settings); - } - public SaslAndHttpBasicAuthenticationHandler(final Authenticator authenticator, final Authorizer authorizer, final Settings settings) { super(authenticator, authorizer, settings); } @@ -58,7 +50,7 @@ public class SaslAndHttpBasicAuthenticationHandler extends SaslAuthenticationHan if (null != pipeline.get(HTTP_AUTH)) { pipeline.remove(HTTP_AUTH); } - pipeline.addAfter(PIPELINE_AUTHENTICATOR, HTTP_AUTH, new HttpBasicAuthenticationHandler(authenticator, this.settings)); + pipeline.addAfter(PIPELINE_AUTHENTICATOR, HTTP_AUTH, new HttpBasicAuthenticationHandler(authenticator, authorizer, this.settings)); if (authorizer != null) { final ChannelInboundHandlerAdapter authorizationHandler = new HttpBasicAuthorizationHandler(authorizer); diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAuthenticationHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAuthenticationHandler.java index 07faaa6f51..b9870ead46 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAuthenticationHandler.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAuthenticationHandler.java @@ -60,14 +60,6 @@ public class SaslAuthenticationHandler extends AbstractAuthenticationHandler { protected final Settings settings; - /** - * @deprecated As of release 3.5.0, replaced by {@link #SaslAuthenticationHandler(Authenticator, Authorizer, Settings)}. - */ - @Deprecated - public SaslAuthenticationHandler(final Authenticator authenticator, final Settings settings) { - this(authenticator, null, settings); - } - public SaslAuthenticationHandler(final Authenticator authenticator, final Authorizer authorizer, final Settings settings) { super(authenticator, authorizer); this.settings = settings;