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

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

commit 91babf331d07f23946bdaaf356449cce0ebe7d99
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu May 1 08:44:04 2025 +0100

    Add BASIC authentication diagram
---
 webapps/docs/architecture/requestProcess.xml       |  27 +++----
 .../architecture/requestProcess/41_basic.plantuml  |  78 +++++++++++++++++++++
 .../docs/architecture/requestProcess/41_basic.png  | Bin 0 -> 114556 bytes
 3 files changed, 88 insertions(+), 17 deletions(-)

diff --git a/webapps/docs/architecture/requestProcess.xml 
b/webapps/docs/architecture/requestProcess.xml
index 67693af810..cec2844cd4 100644
--- a/webapps/docs/architecture/requestProcess.xml
+++ b/webapps/docs/architecture/requestProcess.xml
@@ -84,28 +84,21 @@ Asynchronous - TBD.
 </p>
 </section>
 
-<section name="Legacy information">
-
-<subsection name="diagrams">
+<section name="Authentication">
 <p>
-A UML sequence diagram of the authentication process is available
-<a href="requestProcess/authentication-process.png">here.</a>
+<a href="requestProcess/41_basic.png">Diagram 4.1</a> shows how BASIC
+authentication is processed.
 </p>
-
-</subsection>
-
-<subsection name="comments">
 <p>
-The Servlet Specification provides many opportunities for
-listening in (using Listeners) or modifying (using Filters)
-the request handling process even before the request arrives
-at the servlet that will handle it.
+DIGEST - TBD.
+</p>
+<p>
+FORM - TBD.
+</p>
+<p>
+Jakarta Authentication (JASPIC) - TBD.
 </p>
-
-</subsection>
-
 </section>
 
-
 </body>
 </document>
diff --git a/webapps/docs/architecture/requestProcess/41_basic.plantuml 
b/webapps/docs/architecture/requestProcess/41_basic.plantuml
new file mode 100644
index 0000000000..fd779110ac
--- /dev/null
+++ b/webapps/docs/architecture/requestProcess/41_basic.plantuml
@@ -0,0 +1,78 @@
+@startuml
+
+' Licensed to the Apache Software Foundation (ASF) under one or more
+' contributor license agreements.  See the NOTICE file distributed with
+' this work for additional information regarding copyright ownership.
+' The ASF licenses this file to You 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.
+
+hide footbox
+skinparam style strictuml
+
+participant MimeHeaders
+participant CoyoteRequest
+participant Request
+activate ErrorReportValve
+
+ErrorReportValve -> StandardHostValve ++: invoke()
+StandardHostValve -> Request ++: getContext()
+return
+StandardHostValve -> Context ++: bind()
+return
+StandardHostValve -> Context ++: getPipeline()
+return
+StandardHostValve -> "StandardPipeline\n(Context)" ++: getFirst()
+return
+StandardHostValve -> BasicAuthenticator ++: invoke()
+BasicAuthenticator -> Context ++: getRealm()
+return
+BasicAuthenticator -> LockoutRealm ++: findSecurityContraints()
+return
+BasicAuthenticator -> LockoutRealm ++: hasUserDataPermission()
+return
+BasicAuthenticator -> BasicAuthenticator ++: doAuthenticate()
+BasicAuthenticator -> Request ++: getCoyoteRequest()
+return
+BasicAuthenticator -> CoyoteRequest ++: getMimeHeaders()
+return
+BasicAuthenticator -> MimeHeaders ++: getValue("authorization")
+return
+BasicAuthenticator --> BasicCredentials **:
+BasicAuthenticator -> BasicCredentials ++: getUserName()
+return
+BasicAuthenticator -> BasicCredentials ++: getPassword()
+return
+BasicAuthenticator -> Context ++: getRealm()
+return
+BasicAuthenticator -> LockoutRealm ++: authenticate()
+LockoutRealm -> UserDatabaseRealm ++: authenticate()
+UserDatabaseRealm -> UserDatabaseRealm ++: getPassword(username)
+UserDatabaseRealm -> CredentialHandler ++: matches()
+return
+UserDatabaseRealm -> UserDatabaseRealm ++: getPrincipal()
+return
+return
+return
+return
+return
+BasicAuthenticator -> Realm ++: hasResourcePermission()
+return
+BasicAuthenticator -> BasicAuthenticator ++: getNext()
+return
+BasicAuthenticator -> StandardContextValve ++: invoke()
+note right of StandardContextValve
+  Standard Servlet request
+  processing continues from
+  this point
+end note
+
+@enduml
\ No newline at end of file
diff --git a/webapps/docs/architecture/requestProcess/41_basic.png 
b/webapps/docs/architecture/requestProcess/41_basic.png
new file mode 100644
index 0000000000..ea6bbe70b0
Binary files /dev/null and 
b/webapps/docs/architecture/requestProcess/41_basic.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to