Search in sources :

Example 16 with SamlSession

use of org.keycloak.adapters.saml.SamlSession in project keycloak by keycloak.

the class FilterSamlSessionStore method isLoggedIn.

@Override
public boolean isLoggedIn() {
    HttpSession session = request.getSession(false);
    if (session == null) {
        log.debug("session was null, returning false");
        return false;
    }
    final SamlSession samlSession = SamlUtil.validateSamlSession(session.getAttribute(SamlSession.class.getName()), deployment);
    if (samlSession == null) {
        log.debug("SamlSession was not in session, returning null");
        return false;
    }
    if (idMapper != null && !idMapper.hasSession(session.getId())) {
        logoutAccount();
        return false;
    }
    needRequestRestore = restoreRequest();
    return true;
}
Also used : HttpSession(javax.servlet.http.HttpSession) SamlSession(org.keycloak.adapters.saml.SamlSession)

Example 17 with SamlSession

use of org.keycloak.adapters.saml.SamlSession in project keycloak by keycloak.

the class FilterSamlSessionStore method logoutAccount.

@Override
public void logoutAccount() {
    HttpSession session = request.getSession(false);
    if (session == null)
        return;
    if (session != null) {
        if (idMapper != null)
            idMapper.removeSession(session.getId());
        SamlSession samlSession = (SamlSession) session.getAttribute(SamlSession.class.getName());
        if (samlSession != null) {
            session.removeAttribute(SamlSession.class.getName());
        }
        clearSavedRequest(session);
    }
}
Also used : HttpSession(javax.servlet.http.HttpSession) SamlSession(org.keycloak.adapters.saml.SamlSession)

Example 18 with SamlSession

use of org.keycloak.adapters.saml.SamlSession in project keycloak by keycloak.

the class FilterSamlSessionStore method getWrap.

public HttpServletRequestWrapper getWrap() {
    HttpSession session = request.getSession(true);
    final SamlSession samlSession = (SamlSession) session.getAttribute(SamlSession.class.getName());
    final KeycloakAccount account = samlSession;
    return buildWrapper(session, account);
}
Also used : HttpSession(javax.servlet.http.HttpSession) KeycloakAccount(org.keycloak.adapters.spi.KeycloakAccount) SamlSession(org.keycloak.adapters.saml.SamlSession)

Example 19 with SamlSession

use of org.keycloak.adapters.saml.SamlSession in project keycloak by keycloak.

the class ServletSamlSessionStore method logoutAccount.

@Override
public void logoutAccount() {
    HttpSession session = getSession(false);
    if (session != null) {
        SamlSession samlSession = (SamlSession) session.getAttribute(SamlSession.class.getName());
        if (samlSession != null) {
            if (samlSession.getSessionIndex() != null) {
                idMapperUpdater.removeSession(idMapper, session.getId());
            }
            session.removeAttribute(SamlSession.class.getName());
        }
        session.removeAttribute(SAML_REDIRECT_URI);
    }
}
Also used : HttpSession(javax.servlet.http.HttpSession) SamlSession(org.keycloak.adapters.saml.SamlSession)

Example 20 with SamlSession

use of org.keycloak.adapters.saml.SamlSession in project keycloak by keycloak.

the class ServletSamlSessionStore method isLoggedIn.

@Override
public boolean isLoggedIn() {
    HttpSession session = getSession(false);
    if (session == null) {
        log.debug("Session was not found");
        return false;
    }
    if (!idMapper.hasSession(session.getId()) && !idMapperUpdater.refreshMapping(idMapper, session.getId())) {
        log.debugf("Session %s has expired on some other node", session.getId());
        session.removeAttribute(SamlSession.class.getName());
        return false;
    }
    final SamlSession samlSession = SamlUtil.validateSamlSession(session.getAttribute(SamlSession.class.getName()), deployment);
    if (samlSession == null) {
        return false;
    }
    Account undertowAccount = new Account() {

        @Override
        public Principal getPrincipal() {
            return samlSession.getPrincipal();
        }

        @Override
        public Set<String> getRoles() {
            return samlSession.getRoles();
        }
    };
    securityContext.authenticationComplete(undertowAccount, "KEYCLOAK-SAML", false);
    restoreRequest();
    return true;
}
Also used : Account(io.undertow.security.idm.Account) HttpSession(javax.servlet.http.HttpSession) SamlSession(org.keycloak.adapters.saml.SamlSession)

Aggregations

SamlSession (org.keycloak.adapters.saml.SamlSession)22 HttpSession (javax.servlet.http.HttpSession)11 HttpScope (org.wildfly.security.http.HttpScope)3 XMLGregorianCalendar (javax.xml.datatype.XMLGregorianCalendar)2 SamlAuthenticator (org.keycloak.adapters.saml.SamlAuthenticator)2 SamlDeployment (org.keycloak.adapters.saml.SamlDeployment)2 SamlSessionStore (org.keycloak.adapters.saml.SamlSessionStore)2 SamlAuthenticationHandler (org.keycloak.adapters.saml.profile.SamlAuthenticationHandler)2 BrowserHandler (org.keycloak.adapters.saml.profile.webbrowsersso.BrowserHandler)2 SamlEndpoint (org.keycloak.adapters.saml.profile.webbrowsersso.SamlEndpoint)2 AuthChallenge (org.keycloak.adapters.spi.AuthChallenge)2 AuthOutcome (org.keycloak.adapters.spi.AuthOutcome)2 HttpFacade (org.keycloak.adapters.spi.HttpFacade)2 Account (io.undertow.security.idm.Account)1 ServletRequestContext (io.undertow.servlet.handlers.ServletRequestContext)1 IOException (java.io.IOException)1 URI (java.net.URI)1 InvalidKeyException (java.security.InvalidKeyException)1 KeyManagementException (java.security.KeyManagementException)1 SignatureException (java.security.SignatureException)1