Source:
<code>public R perform(final C context, final Config config, final HttpActionAdapter<R, C> httpActionAdapter, final String inputDefaultUrl, final Boolean inputMultiProfile, final Boolean inputRenewSession) { logger.debug("=== CALLBACK ==="); final String defaultUrl; if (inputDefaultUrl == null) { defaultUrl = Pac4jConstants.DEFAULT_URL_VALUE; } else { defaultUrl = inputDefaultUrl; } final boolean multiProfile; if (inputMultiProfile == null) { multiProfile = false; } else { multiProfile = inputMultiProfile; } final boolean renewSession; if (inputRenewSession == null) { renewSession = true; } else { renewSession = inputRenewSession; } assertNotNull("context", context); assertNotNull("config", config); assertNotNull("httpActionAdapter", httpActionAdapter); assertNotBlank(Pac4jConstants.DEFAULT_URL, defaultUrl); final Clients clients = config.getClients(); assertNotNull("clients", clients); final Client client = clients.findClient(context); logger.debug("client: {}", client); assertNotNull("client", client); assertTrue(client instanceof IndirectClient, "only indirect clients are allowed on the callback url"); HttpAction action; try { final Credentials credentials = client.getCredentials(context); logger.debug("credentials: {}", credentials); final CommonProfile profile = client.getUserProfile(credentials, context); logger.debug("profile: {}", profile); <START> saveUserProfile(context, config, profile, saveInSession, multiProfile, renewSession); <END> action = redirectToOriginallyRequestedUrl(context, defaultUrl); } catch (final HttpAction e) { logger.debug("extra HTTP action required in callback: {}", e.getCode()); action = e; } return httpActionAdapter.adapt(action.getCode(), context); }</code><technical_language>avoid passing saveInSession property current signature</technical_language>

Target:
public R perform(final C context, final Config config, final HttpActionAdapter<R, C> httpActionAdapter, final String inputDefaultUrl, final Boolean inputMultiProfile, final Boolean inputRenewSession) { logger.debug("=== CALLBACK ==="); final String defaultUrl; if (inputDefaultUrl == null) { defaultUrl = Pac4jConstants.DEFAULT_URL_VALUE; } else { defaultUrl = inputDefaultUrl; } final boolean multiProfile; if (inputMultiProfile == null) { multiProfile = false; } else { multiProfile = inputMultiProfile; } final boolean renewSession; if (inputRenewSession == null) { renewSession = true; } else { renewSession = inputRenewSession; } assertNotNull("context", context); assertNotNull("config", config); assertNotNull("httpActionAdapter", httpActionAdapter); assertNotBlank(Pac4jConstants.DEFAULT_URL, defaultUrl); final Clients clients = config.getClients(); assertNotNull("clients", clients); final Client client = clients.findClient(context); logger.debug("client: {}", client); assertNotNull("client", client); assertTrue(client instanceof IndirectClient, "only indirect clients are allowed on the callback url"); HttpAction action; try { final Credentials credentials = client.getCredentials(context); logger.debug("credentials: {}", credentials); final CommonProfile profile = client.getUserProfile(credentials, context); logger.debug("profile: {}", profile); saveUserProfile(context, config, profile, multiProfile, renewSession); action = redirectToOriginallyRequestedUrl(context, defaultUrl); } catch (final HttpAction e) { logger.debug("extra HTTP action required in callback: {}", e.getCode()); action = e; } return httpActionAdapter.adapt(action.getCode(), context); }