67 EventBuilder
event = tokenContext.
getEvent();
68 final UriInfo uriInfo = tokenContext.
getUriInfo();
69 final RealmModel realm = tokenContext.
getRealm();
70 final KeycloakSession session = tokenContext.
getSession();
72 event.event(EventType.IDENTITY_PROVIDER_LINK_ACCOUNT)
73 .detail(Details.EMAIL, user.getEmail())
74 .detail(Details.IDENTITY_PROVIDER, token.getIdentityProviderAlias())
75 .detail(Details.IDENTITY_PROVIDER_USERNAME, token.getIdentityProviderUsername())
80 token.setOriginalCompoundAuthenticationSessionId(token.getCompoundAuthenticationSessionId());
82 String authSessionEncodedId = AuthenticationSessionCompoundId.fromAuthSession(authSession).getEncodedId();
83 token.setCompoundAuthenticationSessionId(authSessionEncodedId);
84 UriBuilder builder =
Urls.
actionTokenBuilder(uriInfo.getBaseUri(), token.serialize(session, realm, uriInfo),
85 authSession.getClient().getClientId(), authSession.getTabId());
86 String confirmUri = builder.build(realm.getName()).toString();
88 return session.getProvider(LoginFormsProvider.class)
89 .setAuthenticationSession(authSession)
90 .setSuccess(Messages.CONFIRM_ACCOUNT_LINKING, token.getIdentityProviderUsername(), token.getIdentityProviderAlias())
91 .setAttribute(Constants.TEMPLATE_ATTR_ACTION_URI, confirmUri)
96 user.setEmailVerified(
true);
98 if (token.getOriginalCompoundAuthenticationSessionId() != null) {
100 asm.removeAuthenticationSession(realm, authSession,
true);
102 AuthenticationSessionCompoundId compoundId = AuthenticationSessionCompoundId.encoded(token.getOriginalCompoundAuthenticationSessionId());
103 ClientModel originalClient = realm.getClientById(compoundId.getClientUUID());
104 authSession =
asm.getAuthenticationSessionByIdAndClient(realm, compoundId.getRootSessionId(), originalClient, compoundId.getTabId());
106 if (authSession != null) {
107 authSession.setAuthNote(IdpEmailVerificationAuthenticator.VERIFY_ACCOUNT_IDP_USERNAME, token.getIdentityProviderUsername());
110 session.authenticationSessions().updateNonlocalSessionAuthNotes(
112 Collections.singletonMap(IdpEmailVerificationAuthenticator.VERIFY_ACCOUNT_IDP_USERNAME, token.getIdentityProviderUsername())
116 return session.getProvider(LoginFormsProvider.class)
117 .setAuthenticationSession(authSession)
118 .setSuccess(Messages.IDENTITY_PROVIDER_LINK_SUCCESS, token.getIdentityProviderAlias(), token.getIdentityProviderUsername())
119 .setAttribute(Constants.SKIP_LINK,
true)
123 authSession.setAuthNote(IdpEmailVerificationAuthenticator.VERIFY_ACCOUNT_IDP_USERNAME, token.getIdentityProviderUsername());
AuthenticationSessionModel getAuthenticationSession()
Definition: ActionTokenContext.java:134
Definition: AuthenticationSessionManager.java:42
Definition: AuthenticationProcessor.java:72
Response brokerFlow(String authSessionId, String code, String flowPath)
Definition: ActionTokenContext.java:163
EventBuilder getEvent()
Definition: ActionTokenContext.java:81
boolean isAuthenticationSessionFresh()
Definition: ActionTokenContext.java:130
static UriBuilder actionTokenBuilder(URI baseUri, String tokenString, String clientId, String tabId)
Definition: Urls.java:190
UriInfo getUriInfo()
Definition: ActionTokenContext.java:97
RealmModel getRealm()
Definition: ActionTokenContext.java:93
static final String CURRENT_FLOW_PATH
Definition: AuthenticationProcessor.java:75
KeycloakSession getSession()
Definition: ActionTokenContext.java:89