Search in sources :

Example 1 with Authenticator

use of org.apache.catalina.Authenticator in project Payara by payara.

the class RealmAdapter method doLogout.

private void doLogout(HttpRequest request, boolean extensionEnabled) {
    Context context = request.getContext();
    Authenticator authenticator = null;
    if (context != null) {
        authenticator = context.getAuthenticator();
    }
    if (authenticator == null) {
        throw new RuntimeException("Context or Authenticator is null");
    }
    try {
        if (extensionEnabled) {
            AuthenticatorProxy proxy = new AuthenticatorProxy(authenticator, null, null);
            proxy.logout(request);
        } else {
            authenticator.logout(request);
        }
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    logout();
}
Also used : SecurityContext(com.sun.enterprise.security.SecurityContext) ServletContext(javax.servlet.ServletContext) ServerContext(org.glassfish.internal.api.ServerContext) PolicyContext(javax.security.jacc.PolicyContext) ServerAuthContext(javax.security.auth.message.config.ServerAuthContext) Context(org.apache.catalina.Context) Authenticator(org.apache.catalina.Authenticator) LifecycleException(org.apache.catalina.LifecycleException) IOException(java.io.IOException) AuthException(javax.security.auth.message.AuthException) ProtocolException(java.net.ProtocolException) MalformedURLException(java.net.MalformedURLException)

Example 2 with Authenticator

use of org.apache.catalina.Authenticator in project tomcat70 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 == null) {
                // No security constraints configured for the application so
                // no need to authorize the user. Use the CoyotePrincipal to
                // provide the authenticated user.
                request.setUserPrincipal(new CoyotePrincipal(username));
            } else 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)

Example 3 with Authenticator

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

the class SingleSignOnListener method sessionEvent.

@Override
public void sessionEvent(SessionEvent event) {
    if (!Session.SESSION_DESTROYED_EVENT.equals(event.getType())) {
        return;
    }
    Session session = event.getSession();
    Manager manager = session.getManager();
    if (manager == null) {
        return;
    }
    Context context = (Context) manager.getContainer();
    Authenticator authenticator = context.getAuthenticator();
    if (!(authenticator instanceof AuthenticatorBase)) {
        return;
    }
    SingleSignOn sso = ((AuthenticatorBase) authenticator).sso;
    if (sso == null) {
        return;
    }
    sso.sessionDestroyed(ssoId, session);
}
Also used : Context(org.apache.catalina.Context) Manager(org.apache.catalina.Manager) Authenticator(org.apache.catalina.Authenticator) Session(org.apache.catalina.Session)

Example 4 with Authenticator

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

the class SingleSignOnListener method sessionEvent.

@Override
public void sessionEvent(SessionEvent event) {
    if (!Session.SESSION_DESTROYED_EVENT.equals(event.getType())) {
        return;
    }
    Session session = event.getSession();
    Manager manager = session.getManager();
    if (manager == null) {
        return;
    }
    Context context = manager.getContext();
    Authenticator authenticator = context.getAuthenticator();
    if (!(authenticator instanceof AuthenticatorBase)) {
        return;
    }
    SingleSignOn sso = ((AuthenticatorBase) authenticator).sso;
    if (sso == null) {
        return;
    }
    sso.sessionDestroyed(ssoId, session);
}
Also used : Context(org.apache.catalina.Context) Manager(org.apache.catalina.Manager) Authenticator(org.apache.catalina.Authenticator) Session(org.apache.catalina.Session)

Example 5 with Authenticator

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

the class StandardContext method getAuthenticator.

@Override
public Authenticator getAuthenticator() {
    if (this instanceof Authenticator)
        return (Authenticator) this;
    Pipeline pipeline = getPipeline();
    if (pipeline != null) {
        Valve basic = pipeline.getBasic();
        if ((basic != null) && (basic instanceof Authenticator))
            return (Authenticator) basic;
        Valve[] valves = pipeline.getValves();
        for (int i = 0; i < valves.length; i++) {
            if (valves[i] instanceof Authenticator)
                return (Authenticator) valves[i];
        }
    }
    return null;
}
Also used : Valve(org.apache.catalina.Valve) Authenticator(org.apache.catalina.Authenticator) SecurityConstraint(org.apache.catalina.deploy.SecurityConstraint) Pipeline(org.apache.catalina.Pipeline)

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