public void processRequest(RequestContext context, RequestSecurityProcessorChain processorChain) throws Exception {
        HttpServletRequest request = context.getRequest();

        if (isLoginRequest(request)) {
            logger.debug("Processing login request");

            String[] tenants = tenantsResolver.getTenants();

            if (ArrayUtils.isEmpty(tenants)) {
                throw new IllegalArgumentException("No tenants resolved for authentication");
            }

            String username = getUsername(request);
            String password = getPassword(request);

            if (username == null) {
                username = "";
            }
            if (password == null) {
                password = "";
            }

            try {
                logger.debug("Attempting authentication of user '{}' with tenants {}", username, tenants);

                Authentication auth = authenticationManager.authenticateUser(tenants, username, password);

                if (getRememberMe(request)) {
                    rememberMeManager.enableRememberMe(auth, context);
                } else {
                    rememberMeManager.disableRememberMe(context);
                }

                onLoginSuccess(context, auth);
            } catch (AuthenticationException e) {
                onLoginFailure(context, e);
            }
        } else {
            processorChain.processRequest(context);
        }
    }
public void processRequest ( RequestContext context , RequestSecurityProcessorChain processorChain ) throws Exception { HttpServletRequest request = context . getRequest ( ) ; if ( isLoginRequest ( request ) ) { logger . debug ( "Processing login request" ) ; String [ ] tenants = tenantsResolver . getTenants ( ) ; if ( ArrayUtils . isEmpty ( tenants ) ) { throw new IllegalArgumentException ( "No tenants resolved for authentication" ) ; } String username = getUsername ( request ) ; String password = getPassword ( request ) ; if ( username == null ) { username = "" ; } if ( password == null ) { password = "" ; } try { logger . debug ( "Attempting authentication of user '{}' with tenants {}" , username , tenants ) ; Authentication auth = authenticationManager . authenticateUser ( tenants , username , password ) ; if ( getRememberMe ( request ) ) { rememberMeManager . enableRememberMe ( auth , context ) ; } else { rememberMeManager . disableRememberMe ( context ) ; } onLoginSuccess ( context , auth ) ; } catch ( AuthenticationException e ) { onLoginFailure ( context , e ) ; } } else { processorChain . processRequest ( context ) ; } }
Checks if the request URL matches the {@code loginUrl} and the HTTP method matches the {@code loginMethod}. If
it does, it proceeds to login the user using the username/password specified in the parameters.

@param context        the context which holds the current request and response
@param processorChain the processor chain, used to call the next processor