@Override public List<ProtocolMapperModel> getBuiltinMappers(String protocol) { LoginProtocolFactory providerFactory = (LoginProtocolFactory) session.getKeycloakSessionFactory().getProviderFactory(LoginProtocol.class, protocol); return providerFactory.getBuiltinMappers(); }
private static Map<String, ProtocolMapperRepresentation> getAllDefaultMappers( KeycloakSession session) { Map<String, ProtocolMapperRepresentation> allMappers = new HashMap<String, ProtocolMapperRepresentation>(); List<ProviderFactory> loginProtocolFactories = session.getKeycloakSessionFactory().getProviderFactories(LoginProtocol.class); for (ProviderFactory factory : loginProtocolFactories) { LoginProtocolFactory loginProtocolFactory = (LoginProtocolFactory) factory; List<ProtocolMapperModel> currentMappers = loginProtocolFactory.getDefaultBuiltinMappers(); for (ProtocolMapperModel protocolMapper : currentMappers) { ProtocolMapperRepresentation rep = ModelToRepresentation.toRepresentation(protocolMapper); allMappers.put(protocolMapper.getName(), rep); } } return allMappers; }
/** * Should not be called from an import. This really expects that the client is created from the * admin console. * * @param session * @param realm * @param rep * @param addDefaultRoles * @return */ public static ClientModel createClient( KeycloakSession session, RealmModel realm, ClientRepresentation rep, boolean addDefaultRoles) { ClientModel client = RepresentationToModel.createClient(session, realm, rep, addDefaultRoles); if (rep.getProtocol() != null) { LoginProtocolFactory providerFactory = (LoginProtocolFactory) session .getKeycloakSessionFactory() .getProviderFactory(LoginProtocol.class, rep.getProtocol()); providerFactory.setupClientDefaults(rep, client); } // remove default mappers if there is a template if (rep.getProtocolMappers() == null && rep.getClientTemplate() != null) { Set<ProtocolMapperModel> mappers = client.getProtocolMappers(); for (ProtocolMapperModel mapper : mappers) client.removeProtocolMapper(mapper); } return client; }