lasdf1234 commented on code in PR #11226:
URL: https://github.com/apache/gravitino/pull/11226#discussion_r3311008176
##########
plugins/idp-basic/src/main/java/org/apache/gravitino/idp/web/rest/feature/IdpRESTFeature.java:
##########
@@ -18,53 +18,81 @@
*/
package org.apache.gravitino.idp.web.rest.feature;
+import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.Feature;
import javax.ws.rs.core.FeatureContext;
import javax.ws.rs.ext.Provider;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.gravitino.Config;
import org.apache.gravitino.Configs;
import org.apache.gravitino.GravitinoEnv;
+import org.apache.gravitino.idp.IdpUserGroupManager;
+import org.apache.gravitino.idp.auth.BasicAuthenticator;
+import org.apache.gravitino.idp.storage.relational.IdpGarbageCollector;
import org.apache.gravitino.idp.web.rest.IdpAuthorizationFilter;
import org.apache.gravitino.idp.web.rest.IdpBasicBinder;
import org.apache.gravitino.idp.web.rest.IdpGroupOperations;
import org.apache.gravitino.idp.web.rest.IdpUserOperations;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
- * Conditionally registers built-in IdP REST resources when {@code basic} is
configured in {@link
- * Configs#AUTHENTICATORS}.
+ * Registers built-in IdP REST resources for the idp-basic plugin.
*
* <p>Configure {@link Configs#REST_API_EXTENSION_PACKAGES} to {@code
- * org.apache.gravitino.idp.web.rest.feature} so Jersey only auto-discovers
this feature. IdP REST
- * resource classes remain in {@code org.apache.gravitino.idp.web.rest} and
are registered here only
- * when the {@code basic} authenticator is enabled.
+ * org.apache.gravitino.idp.web.rest.feature} so Jersey auto-discovers this
feature. IdP REST
+ * resource classes remain in {@code org.apache.gravitino.idp.web.rest} and
are registered here.
+ * Also initializes configured service admins in the built-in IdP when they do
not yet exist.
*/
@Provider
public class IdpRESTFeature implements Feature {
- /** Authenticator name that enables built-in IdP management APIs. */
- public static final String BASIC_AUTHENTICATOR = "basic";
+ private static final Logger LOG =
LoggerFactory.getLogger(IdpRESTFeature.class);
+
+ public static final String IDP_REST_EXTENSION_PACKAGE =
IdpRESTFeature.class.getPackageName();
+
+ public static final String BASIC_AUTHENTICATOR_CLASS =
+ BasicAuthenticator.class.getCanonicalName();
+
+ /** Environment variable for the initial password of configured service
admins. */
+ public static final String INITIAL_ADMIN_PASSWORD_ENV =
"GRAVITINO_INITIAL_ADMIN_PASSWORD";
+
+ public static void registerBasicAuthenticator(Config config) {
+ List<String> extensionPackages =
config.get(Configs.REST_API_EXTENSION_PACKAGES);
+ if (extensionPackages == null ||
!extensionPackages.contains(IDP_REST_EXTENSION_PACKAGE)) {
Review Comment:
Got。resolved.
--
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]