Search in sources :

Example 6 with Authenticator

use of org.apache.catalina.Authenticator in project tomcat by apache.

the class CoyoteAdapter method doConnectorAuthenticationAuthorization.

private void doConnectorAuthenticationAuthorization(org.apache.coyote.Request req, Request request) {
    // Set the remote principal
    String username = req.getRemoteUser().toString();
    if (username != null) {
        if (log.isDebugEnabled()) {
            log.debug(sm.getString("coyoteAdapter.authenticate", username));
        }
        if (req.getRemoteUserNeedsAuthorization()) {
            Authenticator authenticator = request.getContext().getAuthenticator();
            if (!(authenticator instanceof AuthenticatorBase)) {
                if (log.isDebugEnabled()) {
                    log.debug(sm.getString("coyoteAdapter.authorize", username));
                }
                // Custom authenticator that may not trigger authorization.
                // Do the authorization here to make sure it is done.
                request.setUserPrincipal(request.getContext().getRealm().authenticate(username));
            }
        // If the Authenticator is an instance of AuthenticatorBase then
        // it will check req.getRemoteUserNeedsAuthorization() and
        // trigger authorization as necessary. It will also cache the
        // result preventing excessive calls to the Realm.
        } else {
            // The connector isn't configured for authorization. Create a
            // user without any roles using the supplied user name.
            request.setUserPrincipal(new CoyotePrincipal(username));
        }
    }
    // Set the authorization type
    String authType = req.getAuthType().toString();
    if (authType != null) {
        request.setAuthType(authType);
    }
}
Also used : AuthenticatorBase(org.apache.catalina.authenticator.AuthenticatorBase) Authenticator(org.apache.catalina.Authenticator)

Aggregations

Authenticator (org.apache.catalina.Authenticator)6 Context (org.apache.catalina.Context)3 Manager (org.apache.catalina.Manager)2 Session (org.apache.catalina.Session)2 AuthenticatorBase (org.apache.catalina.authenticator.AuthenticatorBase)2 SecurityContext (com.sun.enterprise.security.SecurityContext)1 IOException (java.io.IOException)1 MalformedURLException (java.net.MalformedURLException)1 ProtocolException (java.net.ProtocolException)1 AuthException (javax.security.auth.message.AuthException)1 ServerAuthContext (javax.security.auth.message.config.ServerAuthContext)1 PolicyContext (javax.security.jacc.PolicyContext)1 ServletContext (javax.servlet.ServletContext)1 LifecycleException (org.apache.catalina.LifecycleException)1 Pipeline (org.apache.catalina.Pipeline)1 Valve (org.apache.catalina.Valve)1 SecurityConstraint (org.apache.catalina.deploy.SecurityConstraint)1 ServerContext (org.glassfish.internal.api.ServerContext)1