@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