612             return login(
"identity");
   619         String action = formData.getFirst(
"action");
   620         String providerId = formData.getFirst(
"providerId");
   622         if (Validation.isEmpty(providerId)) {
   626         AccountSocialAction accountSocialAction = AccountSocialAction.getAction(action);
   627         if (accountSocialAction == null) {
   629             return account.
setError(Response.Status.BAD_REQUEST, Messages.INVALID_FEDERATED_IDENTITY_ACTION).
createResponse(AccountPages.FEDERATED_IDENTITY);
   632         boolean hasProvider = 
false;
   635             if (model.getAlias().equals(providerId)) {
   645         if (!user.isEnabled()) {
   650         switch (accountSocialAction) {
   655                     String nonce = UUID.randomUUID().toString();
   656                     MessageDigest md = MessageDigest.getInstance(
"SHA-256");
   658                     byte[] check = md.digest(input.getBytes(StandardCharsets.UTF_8));
   659                     String hash = Base64Url.encode(check);
   661                     linkUrl = UriBuilder.fromUri(linkUrl)
   662                             .queryParam(
"nonce", nonce)
   663                             .queryParam(
"hash", hash)
   665                             .queryParam(
"redirect_uri", redirectUri)
   667                     return Response.seeOther(linkUrl)
   669                 } 
catch (Exception spe) {
   671                     return account.
setError(Response.Status.INTERNAL_SERVER_ERROR, Messages.IDENTITY_PROVIDER_REDIRECT_ERROR).
createResponse(AccountPages.FEDERATED_IDENTITY);
   681                         logger.debugv(
"Social provider {0} removed successfully from user {1}", providerId, user.getUsername());
   685                                 .detail(Details.IDENTITY_PROVIDER, link.getIdentityProvider())
   686                                 .detail(Details.IDENTITY_PROVIDER_USERNAME, link.getUserName())
   693                         return account.
setError(Response.Status.BAD_REQUEST, Messages.FEDERATED_IDENTITY_REMOVING_LAST_PROVIDER).
createResponse(AccountPages.FEDERATED_IDENTITY);
   697                     return account.
setError(Response.Status.BAD_REQUEST, Messages.FEDERATED_IDENTITY_NOT_ACTIVE).
createResponse(AccountPages.FEDERATED_IDENTITY);
   700                 throw new IllegalArgumentException();
 RealmModel realm
Definition: AbstractSecuredLocalService.java:59
 
final ClientModel client
Definition: AbstractSecuredLocalService.java:58
 
KeycloakContext getContext()
 
void setReferrerOnPage()
Definition: AccountFormService.java:226
 
FederatedIdentityModel getFederatedIdentity(UserModel user, String socialProvider, RealmModel realm)
 
Set< FederatedIdentityModel > getFederatedIdentities(UserModel user, RealmModel realm)
 
ClientModel getClient()
Definition: Auth.java:63
 
AccountProvider setError(Response.Status status, String message, Object ... parameters)
 
void require(String role)
Definition: Auth.java:83
 
static boolean isPasswordSet(KeycloakSession session, RealmModel realm, UserModel user)
Definition: AccountFormService.java:945
 
boolean removeFederatedIdentity(RealmModel realm, UserModel user, String socialProvider)
 
void csrfCheck(final MultivaluedMap< String, String > formData)
Definition: AccountFormService.java:1048
 
URI getBaseUri()
Definition: KeycloakUriInfo.java:79
 
Response login(String path)
Definition: AbstractSecuredLocalService.java:132
 
UserModel getUser()
Definition: Auth.java:59
 
Auth auth
Definition: AbstractSecuredLocalService.java:70
 
UserSessionModel getSession()
Definition: Auth.java:71
 
static final Logger logger
Definition: AccountFormService.java:110
 
AccountProvider setSuccess(String message, Object ... parameters)
 
Response createResponse(AccountPages page)
 
AccountProvider account
Definition: AccountFormService.java:127
 
KeycloakSession session
Definition: AbstractSecuredLocalService.java:67
 
List< IdentityProviderModel > getIdentityProviders()