Регистрация пользователя во внешнем поставщике#
В форме ввода логина и пароля для авторизации через внешнего поставщика может отображаться ссылка на страницу регистрации во внешнем поставщике (Нет аккаунта? Зарегистрироваться). Для того чтобы ссылка не отображалась, функции refine
и matchByLogin
в процедуре привязки должны быть вызваны без указания параметров для регистрации.
refine(cxt, users)
вместоrefine(cxt, users, regAttrs)
;matchByLogin(cxt)
вместоmatchByLogin(cxt, regAttrs)
.
Пример использования в процедуре:
package com.identityblitz.idp.federation.matching.dynamic;
import java.lang.*;
import java.util.*;
import java.text.*;
import java.time.*;
import java.math.*;
import java.security.*;
import javax.crypto.*;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
import com.identityblitz.idp.federation.*;
import com.identityblitz.idp.federation.matching.*;
import com.identityblitz.idp.flow.common.api.*;
import com.identityblitz.idp.flow.common.model.*;
import com.identityblitz.idp.federation.matching.dynamic.*;
import java.util.function.Consumer;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import com.identityblitz.idp.extensions.types.JsObject;
import com.identityblitz.idp.federation.matching.*;
import com.identityblitz.idp.flow.common.api.HttpFactory;
public class Esia_1Esia extends MatchingBlock {
private final Logger logger = LoggerFactory.getLogger("com.identityblitz.idp.federation.matching.dynamic");
@Override public MatchResult match(MatchingContext ctx, List<MatchingUser> users){
if (ctx.iteration() == 1) {
return find(ctx, MatchingFilter.empty().eq("uid", "00000").or().eq("uid", "test@test.ru"));
} else {
//return refine(ctx, Collections.singletonList((users.get(0))));
//return refine(ctx, users);
return matchByLogin(ctx);
}
};
@Override public Tuple2<JsObj, Set<String>> update(JsObj extAttrs, MatchingUser user, Boolean justMatched, HttpFactory httpFactory){
return change(JsObj.empty(), Collections.<String>emptySet());
};
}