Search in sources :

Example 1 with RedirectCallback

use of com.sun.identity.authentication.spi.RedirectCallback in project OpenAM by OpenRock.

the class LoginViewBean method processLoginDisplay.

protected void processLoginDisplay() throws Exception {
    loginDebug.message("In processLoginDisplay()");
    String tmp = "";
    try {
        if (!onePageLogin) {
            if (AuthUtils.isNewRequest(ac)) {
                loginDebug.message("In processLoginDisplay() : Session New ");
                getLoginDisplay();
                return;
            }
        }
        String page_state = request.getParameter("page_state");
        if (loginDebug.messageEnabled()) {
            loginDebug.message("Submit with Page State : " + page_state);
        }
        if ((page_state != null) && (page_state.length() != 0)) {
            callbacks = AuthUtils.getCallbacksPerState(ac, page_state);
            if (callbacks == null) {
                errorCode = AMAuthErrorCode.AUTH_TIMEOUT;
                ErrorMessage = AuthUtils.getErrorVal(AMAuthErrorCode.AUTH_TIMEOUT, AuthUtils.ERROR_MESSAGE);
                errorTemplate = AuthUtils.getErrorVal(AMAuthErrorCode.AUTH_TIMEOUT, AuthUtils.ERROR_TEMPLATE);
                return;
            }
            //Get Callbacks in order to set the page state
            Callback[] callbacksForPageState = AuthUtils.getRecdCallback(ac);
            for (int i = 0; i < callbacksForPageState.length; i++) {
                if (loginDebug.messageEnabled()) {
                    loginDebug.message("In processLoginDisplay() callbacksForPageState : " + callbacksForPageState[i]);
                }
                if (callbacksForPageState[i] instanceof PagePropertiesCallback) {
                    PagePropertiesCallback ppc = (PagePropertiesCallback) callbacksForPageState[i];
                    if (loginDebug.messageEnabled()) {
                        loginDebug.message("setPageState in PPC to : " + page_state);
                    }
                    ppc.setPageState(page_state);
                    break;
                }
            }
        } else {
            callbacks = AuthUtils.getRecdCallback(ac);
        }
        indexType = AuthUtils.getIndexType(ac);
        // Assign user specified values
        for (int i = 0; i < callbacks.length; i++) {
            if (loginDebug.messageEnabled()) {
                loginDebug.message("In processLoginDisplay() callback : " + callbacks[i]);
            }
            if (callbacks[i] instanceof NameCallback) {
                NameCallback nc = (NameCallback) callbacks[i];
                tmp = (String) reqDataHash.get(TOKEN + Integer.toString(i));
                if (tmp == null) {
                    tmp = (String) reqDataHash.get(TOKEN_OLD + Integer.toString(i));
                }
                if ((bAuthLevel) || (tmp == null)) {
                    tmp = "";
                }
                nc.setName(tmp.trim());
            } else if (callbacks[i] instanceof PasswordCallback) {
                PasswordCallback pc = (PasswordCallback) callbacks[i];
                tmp = (String) reqDataHash.get(TOKEN + Integer.toString(i));
                if (tmp == null) {
                    tmp = (String) reqDataHash.get(TOKEN_OLD + Integer.toString(i));
                }
                if (tmp == null) {
                    tmp = "";
                }
                pc.setPassword(tmp.toCharArray());
            } else if (callbacks[i] instanceof ChoiceCallback) {
                ChoiceCallback cc = (ChoiceCallback) callbacks[i];
                choice = (String) reqDataHash.get(TOKEN + Integer.toString(i));
                if (choice == null) {
                    choice = (String) reqDataHash.get(TOKEN_OLD + Integer.toString(i));
                }
                if (loginDebug.messageEnabled()) {
                    loginDebug.message("choice : " + choice);
                }
                String[] choices = cc.getChoices();
                if (choice == null) {
                    if (loginDebug.messageEnabled()) {
                        loginDebug.message("No selected choice.");
                    }
                } else if (choice.indexOf("|") != -1) {
                    StringTokenizer st = new StringTokenizer(choice, "|");
                    int cnt = st.countTokens();
                    int[] selectIndexs = new int[cnt];
                    int j = 0;
                    if (loginDebug.messageEnabled()) {
                        loginDebug.message("No of tokens : " + Integer.toString(cnt));
                    }
                    while (st.hasMoreTokens()) {
                        choice = st.nextToken();
                        if (choice != null && choice.length() != 0) {
                            int selected = Integer.parseInt(choice);
                            choice = choices[selected];
                            selectIndexs[j++] = selected;
                            if (loginDebug.messageEnabled()) {
                                loginDebug.message("selected  choice : " + choice + " & selected index : " + selected);
                            }
                        }
                    }
                    cc.setSelectedIndexes(selectIndexs);
                    if (loginDebug.messageEnabled()) {
                        loginDebug.message("Selected indexes : " + selectIndexs);
                    }
                } else {
                    int selected = Integer.parseInt(choice);
                    cc.setSelectedIndex(selected);
                    choice = choices[selected];
                    if (loginDebug.messageEnabled()) {
                        loginDebug.message("selected ONE choice : " + choice + " & selected ONE index : " + selected);
                    }
                }
            } else if (callbacks[i] instanceof ConfirmationCallback) {
                ConfirmationCallback conc = (ConfirmationCallback) callbacks[i];
                buttonOptions = conc.getOptions();
                tmp = (String) reqDataHash.get(BUTTON);
                if (tmp == null) {
                    tmp = (String) reqDataHash.get(BUTTON_OLD);
                }
                if (tmp == null) {
                    tmp = "";
                }
                int selectedIndex = 0;
                for (int j = 0; j < buttonOptions.length; j++) {
                    if ((buttonOptions[j].trim()).equals(tmp.trim())) {
                        selectedIndex = j;
                    }
                }
                conc.setSelectedIndex(selectedIndex);
                if (loginDebug.messageEnabled()) {
                    loginDebug.message("selected  button : " + buttonOptions[selectedIndex] + " & selected button index : " + selectedIndex);
                }
            } else if (callbacks[i] instanceof RedirectCallback) {
                RedirectCallback rc = (RedirectCallback) callbacks[i];
                String status = request.getParameter(rc.getStatusParameter());
                clearCookie(rc.getRedirectBackUrlCookieName());
                loginDebug.message("Redirect callback : set status");
                rc.setStatus(status);
            }
        }
        // testing
        if (loginDebug.messageEnabled()) {
            loginDebug.message(" length 0f callbacks : " + callbacks.length);
            loginDebug.message(" Index type : " + indexType + " Index name : " + indexName);
        }
        if ((indexType == AuthContext.IndexType.LEVEL) || (indexType == AuthContext.IndexType.COMPOSITE_ADVICE)) {
            if (loginDebug.messageEnabled()) {
                loginDebug.message("In processLoginDisplay(), Index type" + " is Auth Level or Composite Advice and selected Module " + "or Service is : " + choice);
            }
            indexName = AMAuthUtils.getDataFromRealmQualifiedData(choice);
            String qualifiedRealm = AMAuthUtils.getRealmFromRealmQualifiedData(choice);
            String orgDN = null;
            if ((qualifiedRealm != null) && (qualifiedRealm.length() != 0)) {
                orgDN = DNMapper.orgNameToDN(qualifiedRealm);
                ac.setOrgDN(orgDN);
            }
            int type = AuthUtils.getCompositeAdviceType(ac);
            if (type == AuthUtils.MODULE) {
                indexType = AuthContext.IndexType.MODULE_INSTANCE;
            } else if (type == AuthUtils.SERVICE) {
                indexType = AuthContext.IndexType.SERVICE;
            } else if (type == AuthUtils.REALM) {
                indexType = AuthContext.IndexType.SERVICE;
                orgDN = DNMapper.orgNameToDN(choice);
                indexName = AuthUtils.getOrgConfiguredAuthenticationChain(orgDN);
                ac.setOrgDN(orgDN);
            } else {
                indexType = AuthContext.IndexType.MODULE_INSTANCE;
            }
            bAuthLevel = true;
            if ((indexName != null) && (indexType == AuthContext.IndexType.MODULE_INSTANCE)) {
                if (indexName.equalsIgnoreCase("Application")) {
                    onePageLogin = true;
                }
            }
            if (loginDebug.messageEnabled()) {
                loginDebug.message("Index type : " + indexType);
                loginDebug.message("Index name : " + indexName);
                loginDebug.message("qualified orgDN : " + orgDN);
            }
            getLoginDisplay();
        } else {
            // Submit the information to auth module
            ac.submitRequirements(callbacks);
            // Check if more information is required
            if (loginDebug.messageEnabled()) {
                loginDebug.message("before hasMoreRequirements: Status is: " + ac.getStatus());
            }
            if (ac.hasMoreRequirements()) {
                loginDebug.message("Has more requirements after Submit ");
                callbacks = ac.getRequirements();
                for (int i = 0; i < callbacks.length; i++) {
                    if (callbacks[i] instanceof HttpCallback) {
                        processHttpCallback((HttpCallback) callbacks[i]);
                        return;
                    } else if (callbacks[i] instanceof RedirectCallback) {
                        processRedirectCallback((RedirectCallback) callbacks[i]);
                        return;
                    }
                }
                addLoginCallbackMessage(callbacks);
                if (!LoginFail) {
                    //if the login already failed, then LoginState is already
                    //nullified, hence any attempt of calling this method
                    //the errormessage/code/template should be already set
                    //so a proper error page is shown.
                    AuthUtils.setCallbacksPerState(ac, pageState, callbacks);
                }
            } else {
                if (loginDebug.messageEnabled()) {
                    loginDebug.message("No more Requirements : Status is : " + ac.getStatus());
                }
                if (ac.getStatus() == AuthContext.Status.SUCCESS) {
                    LoginSuccess = true;
                    ResultVal = rb.getString("authentication.successful");
                    /*
                         * redirect to 'goto' parameter or SPI hook or default
                         * redirect URL.
                         */
                    redirect_url = AuthUtils.getLoginSuccessURL(ac);
                    if ((redirect_url != null) && (redirect_url.length() != 0)) {
                        if (loginDebug.messageEnabled()) {
                            loginDebug.message("LoginSuccessURL (in case of " + " successful auth) : " + redirect_url);
                        }
                    }
                } else if (ac.getStatus() == AuthContext.Status.FAILED) {
                    handleAuthLoginException(null);
                    /*
                         * redirect to 'goto' parameter or SPI hook or default
                         * redirect URL.
                         */
                    redirect_url = AuthUtils.getLoginFailedURL(ac);
                    if ((redirect_url != null) && (redirect_url.length() != 0)) {
                        if (loginDebug.messageEnabled()) {
                            loginDebug.message("LoginFailedURL : " + redirect_url);
                        }
                    }
                } else {
                    /*
                         * redirect to 'goto' parameter or SPI hook or default
                         * redirect URL.
                         */
                    redirect_url = AuthUtils.getLoginFailedURL(ac);
                    if (loginDebug.warningEnabled()) {
                        loginDebug.warning("Login Status is " + ac.getStatus() + " - redirect to loginFailedURL : " + redirect_url);
                    }
                    setErrorMessage(null);
                }
            }
        }
    } catch (Exception e) {
        if (loginDebug.messageEnabled()) {
            loginDebug.message("Error in processing LoginDisplay : ", e);
        }
        setErrorMessage(e);
        throw new L10NMessageImpl(bundleName, "loginDisplay.process", new Object[] { e.getMessage() });
    }
}
Also used : RedirectCallback(com.sun.identity.authentication.spi.RedirectCallback) ConfirmationCallback(javax.security.auth.callback.ConfirmationCallback) PagePropertiesCallback(com.sun.identity.authentication.spi.PagePropertiesCallback) L10NMessageImpl(com.sun.identity.shared.locale.L10NMessageImpl) HttpCallback(com.sun.identity.authentication.spi.HttpCallback) ModelControlException(com.iplanet.jato.model.ModelControlException) AuthLoginException(com.sun.identity.authentication.spi.AuthLoginException) SSOException(com.iplanet.sso.SSOException) IOException(java.io.IOException) ChoiceCallback(javax.security.auth.callback.ChoiceCallback) StringTokenizer(java.util.StringTokenizer) PasswordCallback(javax.security.auth.callback.PasswordCallback) Callback(javax.security.auth.callback.Callback) PagePropertiesCallback(com.sun.identity.authentication.spi.PagePropertiesCallback) HttpCallback(com.sun.identity.authentication.spi.HttpCallback) RedirectCallback(com.sun.identity.authentication.spi.RedirectCallback) ChoiceCallback(javax.security.auth.callback.ChoiceCallback) NameCallback(javax.security.auth.callback.NameCallback) ConfirmationCallback(javax.security.auth.callback.ConfirmationCallback) NameCallback(javax.security.auth.callback.NameCallback) PasswordCallback(javax.security.auth.callback.PasswordCallback)

Example 2 with RedirectCallback

use of com.sun.identity.authentication.spi.RedirectCallback in project OpenAM by OpenRock.

the class LoginViewBean method getLoginDisplay.

protected void getLoginDisplay() throws Exception {
    loginDebug.message("In getLoginDisplay()");
    if (!bAuthLevel) {
        prepareLoginParams();
    }
    if (loginDebug.messageEnabled()) {
        loginDebug.message("Login Parameters : IndexType = " + indexType + " IndexName = " + indexName);
    }
    try {
        if (indexType != null) {
            if (indexType.equals(AuthContext.IndexType.RESOURCE)) {
                ac.login(indexType, indexName, envMap, null);
            } else {
                ac.login(indexType, indexName);
            }
        } else {
            ac.login();
        }
    } catch (AuthLoginException le) {
        loginDebug.message("AuthContext()::login error ", le);
        if ((ac.getStatus() == AuthContext.Status.RESET) || (ac.getStatus() == AuthContext.Status.ORG_MISMATCH)) {
            loginDebug.message("getLoginDisplay(): Destroying current session!");
            InternalSession oldSession = AuthUtils.getOldSession(ac);
            if (AuthUtils.isSessionUpgrade(ac)) {
                clearCookieAndDestroySession(ac);
                loginDebug.message("getLoginDisplay(): Session upgrade - " + " Restoring original Session!");
                if (oldSession != null) {
                    ac.getLoginState().setSession(oldSession);
                    String redirect_url = AuthUtils.getSuccessURL(request, ac);
                    if (loginDebug.messageEnabled()) {
                        loginDebug.message("Session Upgrade - redirect_url : " + redirect_url);
                    }
                    response.sendRedirect(redirect_url);
                }
                forward = false;
            } else {
                clearCookieAndDestroySession(ac);
                if (oldSession != null) {
                    loginDebug.message("Destroy existing/old valid session");
                    AuthD authD = AuthD.getAuth();
                    authD.destroySession(oldSession.getID());
                }
                ac = null;
                handleAuthLoginException(le);
            }
        } else {
            handleAuthLoginException(le);
        }
        return;
    }
    try {
        // Get the information requested by the respective auth module
        if (ac.hasMoreRequirements()) {
            loginDebug.message("In getLoginDisplay, has More Requirements");
            callbacks = ac.getRequirements();
            for (int i = 0; i < callbacks.length; i++) {
                if (callbacks[i] instanceof HttpCallback) {
                    processHttpCallback((HttpCallback) callbacks[i]);
                    return;
                } else if (callbacks[i] instanceof RedirectCallback) {
                    processRedirectCallback((RedirectCallback) callbacks[i]);
                    return;
                } else if (!bAuthLevel && !newOrgExist) {
                    // Auth Level login will never do one page login.
                    if (callbacks[i] instanceof NameCallback) {
                        if (reqDataHash.get(TOKEN + Integer.toString(i)) != null) {
                            onePageLogin = true;
                            break;
                        } else if (reqDataHash.get(TOKEN_OLD + Integer.toString(i)) != null) {
                            onePageLogin = true;
                            break;
                        }
                    } else if (callbacks[i] instanceof PasswordCallback) {
                        if (reqDataHash.get(TOKEN + Integer.toString(i)) != null) {
                            onePageLogin = true;
                            break;
                        } else if (reqDataHash.get(TOKEN_OLD + Integer.toString(i)) != null) {
                            onePageLogin = true;
                            break;
                        }
                    } else if (callbacks[i] instanceof ChoiceCallback) {
                        if (reqDataHash.get(TOKEN + Integer.toString(i)) != null) {
                            onePageLogin = true;
                            break;
                        } else if (reqDataHash.get(TOKEN_OLD + Integer.toString(i)) != null) {
                            onePageLogin = true;
                            break;
                        }
                    } else if (callbacks[i] instanceof ConfirmationCallback) {
                        if (reqDataHash.get(BUTTON) != null) {
                            onePageLogin = true;
                            break;
                        } else if (reqDataHash.get(BUTTON_OLD) != null) {
                            onePageLogin = true;
                            break;
                        }
                    }
                }
            }
            if (onePageLogin && AuthUtils.isZeroPageLoginAllowed(ac.getLoginState().getZeroPageLoginConfig(), request)) {
                // user input login info in URL
                loginDebug.message("User input login information in URL!");
                processLoginDisplay();
            } else {
                addLoginCallbackMessage(callbacks);
                if (!LoginFail) {
                    //if the login already failed, then LoginState is already
                    //nullified, hence any attempt of calling this method
                    //the errormessage/code/template should be already set
                    //so a proper error page is shown.
                    AuthUtils.setCallbacksPerState(ac, pageState, callbacks);
                }
            }
        } else {
            if (loginDebug.messageEnabled()) {
                loginDebug.message("No more Requirements in getLoginDisplay");
                loginDebug.message("Status is : " + ac.getStatus());
            }
            if (ac.getStatus() == AuthContext.Status.SUCCESS) {
                LoginSuccess = true;
                ResultVal = rb.getString("authentication.successful");
                /*
                     * redirect to 'goto' parameter or SPI hook or default
                     * redirect URL.
                     */
                redirect_url = AuthUtils.getLoginSuccessURL(ac);
                if ((redirect_url != null) && (redirect_url.length() != 0)) {
                    if (loginDebug.messageEnabled()) {
                        loginDebug.message("LoginSuccessURL in getLoginDisplay " + "(in case of successful auth) : " + redirect_url);
                    }
                }
            } else if (ac.getStatus() == AuthContext.Status.FAILED) {
                handleAuthLoginException(null);
                /*
                     * redirect to 'goto' parameter or SPI hook or default
                     * redirect URL.
                     */
                redirect_url = AuthUtils.getLoginFailedURL(ac);
                if ((redirect_url != null) && (redirect_url.length() != 0)) {
                    if (loginDebug.messageEnabled()) {
                        loginDebug.message("LoginFailedURL in getLoginDisplay : " + redirect_url);
                    }
                }
            } else {
                /*
                     * redirect to 'goto' parameter or SPI hook or default
                     * redirect URL.
                     */
                redirect_url = AuthUtils.getLoginFailedURL(ac);
                if (loginDebug.warningEnabled()) {
                    loginDebug.warning("Login Status is " + ac.getStatus() + " - redirect to loginFailedURL : " + redirect_url);
                }
                setErrorMessage(null);
            }
        }
    } catch (Exception e) {
        setErrorMessage(e);
        throw new L10NMessageImpl(bundleName, "loginDisplay.get", new Object[] { e.getMessage() });
    }
}
Also used : RedirectCallback(com.sun.identity.authentication.spi.RedirectCallback) ConfirmationCallback(javax.security.auth.callback.ConfirmationCallback) L10NMessageImpl(com.sun.identity.shared.locale.L10NMessageImpl) HttpCallback(com.sun.identity.authentication.spi.HttpCallback) AuthLoginException(com.sun.identity.authentication.spi.AuthLoginException) ModelControlException(com.iplanet.jato.model.ModelControlException) AuthLoginException(com.sun.identity.authentication.spi.AuthLoginException) SSOException(com.iplanet.sso.SSOException) IOException(java.io.IOException) ChoiceCallback(javax.security.auth.callback.ChoiceCallback) NameCallback(javax.security.auth.callback.NameCallback) InternalSession(com.iplanet.dpro.session.service.InternalSession) AuthD(com.sun.identity.authentication.service.AuthD) PasswordCallback(javax.security.auth.callback.PasswordCallback)

Example 3 with RedirectCallback

use of com.sun.identity.authentication.spi.RedirectCallback in project OpenAM by OpenRock.

the class SAML2 method initiateSAMLLoginAtIDP.

/**
     * Performs similar to SPSSOFederate.initiateAuthnRequest by returning to the next auth stage
     * with a redirect (either GET or POST depending on the config) which triggers remote IdP authentication.
     */
private int initiateSAMLLoginAtIDP(final HttpServletResponse response, final HttpServletRequest request) throws SAML2Exception, AuthLoginException {
    if (reqBinding == null) {
        reqBinding = SAML2Constants.HTTP_REDIRECT;
    }
    final String spEntityID = SPSSOFederate.getSPEntityId(metaAlias);
    final IDPSSODescriptorElement idpsso = SPSSOFederate.getIDPSSOForAuthnReq(realm, entityName);
    final SPSSODescriptorElement spsso = SPSSOFederate.getSPSSOForAuthnReq(realm, spEntityID);
    if (idpsso == null || spsso == null) {
        return processError(bundle.getString("samlLocalConfigFailed"), "SAML2 :: initiateSAMLLoginAtIDP() : {}", bundle.getString("samlLocalConfigFailed"));
    }
    final String ssoURL = SPSSOFederate.getSSOURL(idpsso.getSingleSignOnService(), reqBinding);
    final List extensionsList = SPSSOFederate.getExtensionsList(spEntityID, realm);
    final Map<String, Collection<String>> spConfigAttrsMap = SPSSOFederate.getAttrsMapForAuthnReq(realm, spEntityID);
    authnRequest = SPSSOFederate.createAuthnRequest(realm, spEntityID, params, spConfigAttrsMap, extensionsList, spsso, idpsso, ssoURL, false);
    final AuthnRequestInfo reqInfo = new AuthnRequestInfo(request, response, realm, spEntityID, null, authnRequest, null, params);
    synchronized (SPCache.requestHash) {
        SPCache.requestHash.put(authnRequest.getID(), reqInfo);
    }
    saveAuthnRequest(authnRequest, reqInfo);
    final Callback[] nextCallbacks = getCallback(REDIRECT);
    final RedirectCallback redirectCallback = (RedirectCallback) nextCallbacks[0];
    setCookiesForRedirects(request, response);
    //we only handle Redirect and POST
    if (SAML2Constants.HTTP_POST.equals(reqBinding)) {
        final String postMsg = SPSSOFederate.getPostBindingMsg(idpsso, spsso, spConfigAttrsMap, authnRequest);
        configurePostRedirectCallback(postMsg, ssoURL, redirectCallback);
    } else {
        final String authReqXMLString = authnRequest.toXMLString(true, true);
        final String redirectUrl = SPSSOFederate.getRedirect(authReqXMLString, null, ssoURL, idpsso, spsso, spConfigAttrsMap);
        configureGetRedirectCallback(redirectUrl, redirectCallback);
    }
    return REDIRECT;
}
Also used : RedirectCallback(com.sun.identity.authentication.spi.RedirectCallback) Callback(javax.security.auth.callback.Callback) PagePropertiesCallback(com.sun.identity.authentication.spi.PagePropertiesCallback) RedirectCallback(com.sun.identity.authentication.spi.RedirectCallback) SPSSODescriptorElement(com.sun.identity.saml2.jaxb.metadata.SPSSODescriptorElement) AuthnRequestInfo(com.sun.identity.saml2.profile.AuthnRequestInfo) Collection(java.util.Collection) List(java.util.List) IDPSSODescriptorElement(com.sun.identity.saml2.jaxb.metadata.IDPSSODescriptorElement)

Example 4 with RedirectCallback

use of com.sun.identity.authentication.spi.RedirectCallback in project OpenAM by OpenRock.

the class SAML2 method configurePostRedirectCallback.

/**
     * Generates the redirect from SAML2 auth module to IDP as POST.
     */
private void configurePostRedirectCallback(final String postMsg, final String ssoURL, final RedirectCallback redirectCallback) throws AuthLoginException {
    final Map<String, String> postData = new HashMap<>();
    postData.put(SAML2Constants.SAML_REQUEST, postMsg);
    final RedirectCallback rcNew = new RedirectCallback(ssoURL, postData, "POST", redirectCallback.getStatusParameter(), redirectCallback.getRedirectBackUrlCookieName());
    rcNew.setTrackingCookie(true);
    replaceCallback(REDIRECT, REDIRECT_CALLBACK, rcNew);
}
Also used : RedirectCallback(com.sun.identity.authentication.spi.RedirectCallback) HashMap(java.util.HashMap)

Example 5 with RedirectCallback

use of com.sun.identity.authentication.spi.RedirectCallback in project OpenAM by OpenRock.

the class RestAuthRedirectCallbackHandlerTest method shouldFailToConvertFromJson.

@Test
public void shouldFailToConvertFromJson() throws RestAuthException {
    //Given
    RedirectCallback redirectCallback = mock(RedirectCallback.class);
    JsonValue jsonValue = json(object(field("type", "RedirectCallback")));
    //When
    RedirectCallback redirectCb = restAuthRedirectCallbackHandler.convertFromJson(redirectCallback, jsonValue);
    //Then
    assertThat(redirectCb).isEqualTo(redirectCallback);
}
Also used : RedirectCallback(com.sun.identity.authentication.spi.RedirectCallback) JsonValue(org.forgerock.json.JsonValue) Test(org.testng.annotations.Test)

Aggregations

RedirectCallback (com.sun.identity.authentication.spi.RedirectCallback)15 JsonValue (org.forgerock.json.JsonValue)6 SSOException (com.iplanet.sso.SSOException)4 AuthLoginException (com.sun.identity.authentication.spi.AuthLoginException)4 HttpCallback (com.sun.identity.authentication.spi.HttpCallback)4 PagePropertiesCallback (com.sun.identity.authentication.spi.PagePropertiesCallback)4 Callback (javax.security.auth.callback.Callback)4 ChoiceCallback (javax.security.auth.callback.ChoiceCallback)4 ConfirmationCallback (javax.security.auth.callback.ConfirmationCallback)4 NameCallback (javax.security.auth.callback.NameCallback)4 PasswordCallback (javax.security.auth.callback.PasswordCallback)4 Test (org.testng.annotations.Test)4 HashMap (java.util.HashMap)3 ModelControlException (com.iplanet.jato.model.ModelControlException)2 L10NMessageImpl (com.sun.identity.shared.locale.L10NMessageImpl)2 IOException (java.io.IOException)2 Map (java.util.Map)2 HttpServletRequest (javax.servlet.http.HttpServletRequest)2 HttpServletResponse (javax.servlet.http.HttpServletResponse)2 InternalSession (com.iplanet.dpro.session.service.InternalSession)1