This is an automated email from the ASF dual-hosted git repository.

roryqi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new ee20a571b0 [#11550] docs(authn): Clarify Web UI Basic auth limits and 
relocate BasicAuthOperationsIT (#11551)
ee20a571b0 is described below

commit ee20a571b0ab1c735cee04b4d38054164d703d69
Author: MaSai <[email protected]>
AuthorDate: Wed Jun 10 16:56:16 2026 +0800

    [#11550] docs(authn): Clarify Web UI Basic auth limits and relocate 
BasicAuthOperationsIT (#11551)
    
    ### What changes were proposed in this pull request?
    
    1. **Documentation** — State that the Gravitino Web UI (v1 and Web V2)
    does not provide a username/password login flow for built-in IDP Basic
    authentication. Login pages only support `simple` and `oauth`. Users
    enabling Basic auth should use REST APIs, Java/Python clients, or engine
    connectors instead.
    
       Updated:
    - `docs/security/how-to-use-built-in-idp.md` — **Web UI** subsection and
    end-to-end setup note
    - `docs/security/how-to-authenticate.md` — note in Basic mode and
    example section
       - `docs/webui.md` and `docs/webui-v2.md` — initial-page guidance
    
    2. **Test** — Move `BasicAuthOperationsIT` from `clients/client-java` to
    `plugins/idp-basic` (alongside `IdpRESTApiIT`) and remove the
    `idp-basic` test dependency from `client-java`.
    
    ### Why are the changes needed?
    
    Built-in IDP Basic authentication works for the server REST API and
    clients, but the Web UI has no interactive Basic login. Without
    documentation, users may assume browser sign-in is supported and waste
    time debugging failed logins.
    
    Relocating the integration test keeps IdP-related ITs in the `idp-basic`
    module and avoids a circular-style test dependency from `client-java` on
    `idp-basic`.
    
    Fix: #11550
    
    ### Does this PR introduce _any_ user-facing change?
    
    Documentation only. No API or configuration changes. The test relocation
    does not change product behavior.
    
    ### How was this patch tested?
    
    - Docs reviewed for link targets and consistency with Web UI auth code
    paths (`simple` / `oauth` only in `session.js`).
    - `./gradlew :plugins:idp-basic:test --tests
    org.apache.gravitino.idp.integration.test.BasicAuthOperationsIT`
---
 .github/workflows/idp-basic-test.yml                             | 3 +++
 clients/client-java/build.gradle.kts                             | 1 -
 docs/security/how-to-authenticate.md                             | 8 ++++++++
 docs/security/how-to-use-built-in-idp.md                         | 9 +++++++++
 docs/webui-v2.md                                                 | 6 ++++++
 docs/webui.md                                                    | 6 ++++++
 .../gravitino/idp/integration/test}/BasicAuthOperationsIT.java   | 2 +-
 7 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/idp-basic-test.yml 
b/.github/workflows/idp-basic-test.yml
index cc584e7747..3591acea81 100644
--- a/.github/workflows/idp-basic-test.yml
+++ b/.github/workflows/idp-basic-test.yml
@@ -22,6 +22,9 @@ jobs:
           filters: |
             source_changes:
               - plugins/idp-basic/**
+              - clients/client-java/**
+              - clients/client-java-runtime/**
+              - integration-test-common/**
               - core/**
               - gradle/**
               - gradlew
diff --git a/clients/client-java/build.gradle.kts 
b/clients/client-java/build.gradle.kts
index cf13fa07ed..b3850d71fe 100644
--- a/clients/client-java/build.gradle.kts
+++ b/clients/client-java/build.gradle.kts
@@ -44,7 +44,6 @@ dependencies {
 
   testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
-  testImplementation(project(":plugins:idp-basic"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
 
diff --git a/docs/security/how-to-authenticate.md 
b/docs/security/how-to-authenticate.md
index 5389d4a734..8cc2938a1e 100644
--- a/docs/security/how-to-authenticate.md
+++ b/docs/security/how-to-authenticate.md
@@ -86,6 +86,14 @@ curl -v -X GET \
   http://localhost:8090/api/version
 ```
 
+:::note
+The Web UI does not provide a username/password login form for built-in IDP 
Basic authentication.
+Use REST clients, the Java/Python client, or engine connectors instead. See
+[built-in IDP Web UI](how-to-use-built-in-idp.md#web-ui), the
+[Web UI initial page](../webui.md#initial-page), and the
+[Web V2 initial page](../webui-v2.md#initial-page).
+:::
+
 ### OAuth Mode
 
 Gravitino supports external OAuth 2.0 servers with two token validation 
methods:
diff --git a/docs/security/how-to-use-built-in-idp.md 
b/docs/security/how-to-use-built-in-idp.md
index c25461a414..0c0a621bc3 100644
--- a/docs/security/how-to-use-built-in-idp.md
+++ b/docs/security/how-to-use-built-in-idp.md
@@ -19,6 +19,15 @@ and prefer [HTTPS](how-to-use-https.md) when credentials 
travel over the network
 This guide describes how to enable and operate the management APIs in 
`plugins:idp-basic`. For
 request and response schemas, see the [Built-in IDP 
OpenAPI](../open-api/idp/openapi.yaml).
 
+## Web UI
+
+Built-in IdP is **incompatible** with the `simple` authenticator (the 
default). The Web UI does not
+support signing in with built-in IDP Basic credentials. Login pages only 
handle `simple`
+(username-only when authorization is enabled) and `oauth` (OIDC/OAuth) flows. 
If you need the Web UI
+while built-in IdP is enabled, prefer [OAuth 
mode](how-to-authenticate.md#oauth-mode). For Basic
+authentication, use the REST API, [Java/Python 
clients](how-to-authenticate.md#basic-mode), or
+engine connectors instead.
+
 ---
 
 ## Prerequisites
diff --git a/docs/webui-v2.md b/docs/webui-v2.md
index 1e0d154db4..79c446301e 100644
--- a/docs/webui-v2.md
+++ b/docs/webui-v2.md
@@ -54,6 +54,12 @@ The Web V2 landing page depends on both the authentication 
mode and whether auth
 
   ![oauth-login](./assets/webui-v2/oauth-login.png)
 
+:::note
+Built-in IDP Basic authentication is not supported in the Web UI. The UI does 
not collect
+username and password for this mode. Use the REST API, Java/Python clients, or 
engine connectors
+instead. See [built-in IDP Web UI](security/how-to-use-built-in-idp.md#web-ui).
+:::
+
 ### Metalakes
 
 Overview for Metalake in the Web V2.
diff --git a/docs/webui.md b/docs/webui.md
index 00d3478259..d93ae14598 100644
--- a/docs/webui.md
+++ b/docs/webui.md
@@ -22,6 +22,12 @@ The web UI homepage displayed in Gravitino depends on the 
configuration paramete
 
 Set parameter for `gravitino.authenticators`, [`simple`](#simple-mode) or 
[`oauth`](#oauth-mode). Simple mode is the default authentication option. If 
multiple authenticators are set, the first one is taken by default.
 
+:::note
+Built-in IDP Basic authentication is not supported in the Web UI. The UI does 
not collect
+username and password for this mode. Use the REST API, Java/Python clients, or 
engine connectors
+instead. See [built-in IDP Web UI](security/how-to-use-built-in-idp.md#web-ui).
+:::
+
 :::tip
 After changing the configuration, make sure to restart the Gravitino server.
 
diff --git 
a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/BasicAuthOperationsIT.java
 
b/plugins/idp-basic/src/test/java/org/apache/gravitino/idp/integration/test/BasicAuthOperationsIT.java
similarity index 98%
rename from 
clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/BasicAuthOperationsIT.java
rename to 
plugins/idp-basic/src/test/java/org/apache/gravitino/idp/integration/test/BasicAuthOperationsIT.java
index 5d6242a20e..df16e56bf8 100644
--- 
a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/BasicAuthOperationsIT.java
+++ 
b/plugins/idp-basic/src/test/java/org/apache/gravitino/idp/integration/test/BasicAuthOperationsIT.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.gravitino.client.integration.test.authorization;
+package org.apache.gravitino.idp.integration.test;
 
 import static org.apache.gravitino.integration.test.util.BaseIT.setEnv;
 

Reply via email to