Expose dummy OAuthLoginProvider implementation
Since [1] OAuthLoginProvider is required for oauth provider plugin to
work.
[1] https://gerrit-review.googlesource.com/96370
Bug: https://github.com/davido/gerrit-oauth-provider/issues/84
Change-Id: I487858d40d489a8b4e55665aa33a0df89d1150b6
diff --git a/BUILD b/BUILD
index 61d484f..966c97b 100644
--- a/BUILD
+++ b/BUILD
@@ -5,6 +5,7 @@
srcs = glob(["src/main/java/**/*.java"]),
manifest_entries = [
"Gerrit-PluginName: gerrit-oauth-provider",
+ "Gerrit-Module: com.googlesource.gerrit.plugins.oauth.Module",
"Gerrit-HttpModule: com.googlesource.gerrit.plugins.oauth.HttpModule",
"Gerrit-InitStep: com.googlesource.gerrit.plugins.oauth.InitOAuth",
"Implementation-Title: Gerrit OAuth authentication provider",
diff --git a/src/main/java/com/googlesource/gerrit/plugins/oauth/DisabledOAuthLoginProvider.java b/src/main/java/com/googlesource/gerrit/plugins/oauth/DisabledOAuthLoginProvider.java
new file mode 100644
index 0000000..22ae06e
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/oauth/DisabledOAuthLoginProvider.java
@@ -0,0 +1,39 @@
+// Copyright (C) 2017 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.oauth;
+
+import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.extensions.auth.oauth.OAuthLoginProvider;
+import com.google.gerrit.extensions.auth.oauth.OAuthUserInfo;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.io.IOException;
+
+@Singleton
+class DisabledOAuthLoginProvider implements OAuthLoginProvider {
+ private final String pluginName;
+
+ @Inject
+ DisabledOAuthLoginProvider(@PluginName String pluginName) {
+ this.pluginName = pluginName;
+ }
+
+ @Override
+ public OAuthUserInfo login(String username, String secret)
+ throws IOException {
+ throw new UnsupportedOperationException(
+ "git over oauth is not implemented by " + pluginName + " plugin");
+ }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/oauth/Module.java b/src/main/java/com/googlesource/gerrit/plugins/oauth/Module.java
new file mode 100644
index 0000000..c865e99
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/oauth/Module.java
@@ -0,0 +1,37 @@
+// Copyright (C) 2017 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.oauth;
+
+import com.google.gerrit.extensions.annotations.Exports;
+import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.extensions.auth.oauth.OAuthLoginProvider;
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+
+public class Module extends AbstractModule {
+ private final String pluginName;
+
+ @Inject
+ Module(@PluginName String pluginName) {
+ this.pluginName = pluginName;
+ }
+
+ @Override
+ protected void configure() {
+ bind(OAuthLoginProvider.class)
+ .annotatedWith(Exports.named(pluginName))
+ .to(DisabledOAuthLoginProvider.class);
+ }
+}