protected void addStateAndNonceParameters(final CallContext ctx, final Map<String, String> params) {
        val webContext = ctx.webContext();
        val sessionStore = ctx.sessionStore();

        // Init state for CSRF mitigation
        if (client.getConfiguration().isWithState()) {
            val state = new State(client.getConfiguration().getStateGenerator().generateValue(ctx));
            params.put(OidcConfiguration.STATE, state.getValue());
            sessionStore.set(webContext, client.getStateSessionAttributeName(), state);
        }

        // Init nonce for replay attack mitigation
        if (client.getConfiguration().isUseNonce()) {
            val nonce = new Nonce();
            params.put(OidcConfiguration.NONCE, nonce.getValue());
            sessionStore.set(webContext, client.getNonceSessionAttributeName(), nonce.getValue());
        }

        var pkceMethod = client.getConfiguration().findPkceMethod();
        if (pkceMethod != null) {
            val verifier = new CodeVerifier(client.getConfiguration().getCodeVerifierGenerator().generateValue(ctx));
            sessionStore.set(webContext, client.getCodeVerifierSessionAttributeName(), verifier);
            params.put(OidcConfiguration.CODE_CHALLENGE, CodeChallenge.compute(pkceMethod, verifier).getValue());
            params.put(OidcConfiguration.CODE_CHALLENGE_METHOD, pkceMethod.getValue());
        }
    }
<p>buildParams.</p>

@param webContext a {@link WebContext} object
@return a {@link Map} object
pac4j-oidc/src/main/java/org/pac4j/oidc/redirect/OidcRedirectionActionBuilder.java