@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); }
@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; }
public void addAuthenticator(Authenticator authenticator, String loginMethod) { if (!(authenticator instanceof Valve)) { throw new IllegalArgumentException( sm.getString("embedded.authenticatorNotInstanceOfValve")); } if (authenticators == null) { synchronized (this) { if (authenticators == null) { authenticators = new HashMap<String,Authenticator>(); } } } authenticators.put(loginMethod, authenticator); }
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); } }
public void addAuthenticator(Authenticator authenticator, String loginMethod) { if (!(authenticator instanceof Valve)) { throw new IllegalArgumentException(sm.getString("embedded.authenticatorNotInstanceOfValve")); } if (authenticators == null) { synchronized (this) { if (authenticators == null) { authenticators = new HashMap<String, Authenticator>(); } } } authenticators.put(loginMethod, authenticator); }
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); } }
@Override public Authenticator getAuthenticator() { return null; }
/** * Sets custom mappings of login methods to authenticators. * * @param customAuthenticators Custom mappings of login methods to * authenticators */ public void setCustomAuthenticators( Map<String,Authenticator> customAuthenticators) { this.customAuthenticators = customAuthenticators; }
/** * Sets custom mappings of login methods to authenticators. * * @param customAuthenticators * Custom mappings of login methods to authenticators */ public void setCustomAuthenticators(Map<String, Authenticator> customAuthenticators) { this.customAuthenticators = customAuthenticators; }