io.gravitee.am.identityprovider.api.User类的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(15.1k)|赞(0)|评价(0)|浏览(84)

本文整理了Java中io.gravitee.am.identityprovider.api.User类的一些代码示例,展示了User类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。User类的具体详情如下:
包路径:io.gravitee.am.identityprovider.api.User
类名称:User

User介绍

暂无

代码示例

代码示例来源:origin: io.gravitee.am.identityprovider/gravitee-am-identityprovider-mongo

@Override
public Single<User> update(String id, User updateUser) {
  return findById(id)
      .switchIfEmpty(Maybe.error(new UserNotFoundException(id)))
      .flatMapSingle(oldUser -> {
        Document document = new Document();
        // set username (keep the original value)
        document.put(configuration.getUsernameField(), oldUser.getUsername());
        // set password
        String password = (updateUser.getCredentials() == null) ? oldUser.getCredentials() : passwordEncoder.encode(updateUser.getCredentials());
        document.put(configuration.getPasswordField(), password);
        // set additional information
        if (updateUser.getAdditionalInformation() != null) {
          document.putAll(updateUser.getAdditionalInformation());
        }
        // set date fields
        document.put(FIELD_CREATED_AT, oldUser.getCreatedAt());
        document.put(FIELD_UPDATED_AT, new Date());
        return Single.fromPublisher(usersCollection.replaceOne(eq(FIELD_ID, oldUser.getId()), document)).flatMap(updateResult -> findById(oldUser.getId()).toSingle());
      });
}

代码示例来源:origin: gravitee-io/graviteeio-access-management

String source = (String) user.getAdditionalInformation().get("source");
return userRepository.findByDomainAndUsernameAndSource(domain, user.getUsername(), source)
    .switchIfEmpty(Maybe.error(new UserNotFoundException(user.getUsername())))
    .flatMapSingle(existingUser -> enhanceUserWithGroupRoles(existingUser, user))
    .flatMap(existingUser -> {
      LOGGER.debug("Updating user: username[%s]", user.getUsername());
      existingUser.setExternalId(user.getId());
      existingUser.setLoggedAt(new Date());
      existingUser.setLoginsCount(existingUser.getLoginsCount() + 1);
        existingUser.setRoles(user.getRoles());
      } else if (user.getRoles() != null) {
        existingUser.getRoles().addAll(user.getRoles());
      Map<String, Object> additionalInformation = user.getAdditionalInformation();
      extractAdditionalInformation(existingUser, additionalInformation);
      return userRepository.update(existingUser);
    .onErrorResumeNext(ex -> {
      if (ex instanceof UserNotFoundException) {
        LOGGER.debug("Creating a new user: username[%s]", user.getUsername());
        final User newUser = new User();
        newUser.setExternalId(user.getId());
        newUser.setUsername(user.getUsername());
        newUser.setDomain(domain);
        newUser.setCreatedAt(new Date());
        newUser.setLoggedAt(new Date());

代码示例来源:origin: gravitee-io/graviteeio-access-management

private String generateToken(final User user, Date expirationDate) {
  String compactJws = Jwts.builder()
      .setSubject(user.getUsername())
      .setIssuedAt(new Date())
      .setExpiration(expirationDate)
      .setClaims(user.getAdditionalInformation())
      .signWith(key)
      .compact();
  return compactJws;
}

代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler

@Override
protected Maybe<User> resolveResourceOwner(TokenRequest tokenRequest, Client client) {
  return extensionGrantProvider.grant(convert(tokenRequest))
      .flatMap(endUser -> {
        if (extensionGrant.isCreateUser()) {
          Map<String, Object> additionalInformation = endUser.getAdditionalInformation() == null ? new HashMap<>() : new HashMap<>(endUser.getAdditionalInformation());
          // set source provider
          additionalInformation.put("source", extensionGrant.getIdentityProvider() != null ? extensionGrant.getIdentityProvider() : extensionGrant.getId());
          additionalInformation.put("client_id", client.getClientId());
          ((DefaultUser) endUser).setAdditionalInformation(additionalInformation);
          return userAuthenticationManager.loadUser(endUser).toMaybe();
        } else {
          User user = new User();
          // we do not create AM user, user id is the idp user id
          user.setId(endUser.getId());
          user.setUsername(endUser.getUsername());
          user.setAdditionalInformation(endUser.getAdditionalInformation());
          return Maybe.just(user);
        }
      })
      .onErrorResumeNext(ex -> {
        return Maybe.error(new InvalidGrantException(ex.getMessage()));
      });
}

代码示例来源:origin: gravitee-io/graviteeio-access-management

private Single<User> enhanceUserWithGroupRoles(User user, io.gravitee.am.identityprovider.api.User idpUser) {
  if (idpUser.getAdditionalInformation() != null && idpUser.getAdditionalInformation().containsKey(GROUP_MAPPING_ATTRIBUTE)) {
    Map<String, List<String>> groupMapping = (Map<String, List<String>>) idpUser.getAdditionalInformation().get(GROUP_MAPPING_ATTRIBUTE);
    // for each group if current user is member of one of these groups add corresponding role to the user
    return Observable.fromIterable(groupMapping.entrySet())
        .flatMapSingle(entry -> groupRepository.findByIdIn(entry.getValue())
            .map(groups -> groups
                .stream()
                .filter(group -> group.getMembers().contains(user.getId()))
                .findFirst())
            .map(optionalGroup -> optionalGroup.isPresent() ? Optional.of(entry.getKey()) : Optional.<String>empty()))
        .toList()
        .map(optionals -> {
          List<String> roles = optionals.stream().filter(Optional::isPresent).map(opt -> opt.get()).collect(Collectors.toList());
          user.setRoles(roles);
          return user;
        });
  } else {
    return Single.just(user);
  }
}

代码示例来源:origin: io.gravitee.am.gateway/gravitee-am-gateway-service

@Override
public Single<User> findOrCreate(io.gravitee.am.identityprovider.api.User user) {
  return userRepository.findByUsernameAndDomain(domain.getId(), user.getUsername())
      .switchIfEmpty(Maybe.error(new UserNotFoundException(user.getUsername())))
      .flatMapSingle(existingUser -> {
        logger.debug("Updating user: username[%s]", user.getUsername());
        existingUser.setLoggedAt(new Date());
        existingUser.setLoginsCount(existingUser.getLoginsCount() + 1);
        existingUser.setRoles(user.getRoles());
        Map<String, Object> additionalInformation = user.getAdditionalInformation();
        extractAdditionalInformation(existingUser, additionalInformation);
        return userRepository.update(existingUser);
      .onErrorResumeNext(ex -> {
        if (ex instanceof UserNotFoundException) {
          logger.debug("Creating a new user: username[%s]", user.getUsername());
          final User newUser = new User();
          newUser.setUsername(user.getUsername());
          newUser.setDomain(domain.getId());
          newUser.setCreatedAt(new Date());
          newUser.setLoggedAt(new Date());
          newUser.setLoginsCount(1L);
          newUser.setRoles(user.getRoles());
          Map<String, Object> additionalInformation = user.getAdditionalInformation();
          extractAdditionalInformation(newUser, additionalInformation);
          return userRepository.create(newUser);

代码示例来源:origin: gravitee-io/graviteeio-access-management

@Override
public Completable resetPassword(User user) {
  // only idp manage password, find user idp and update its password
  return identityProviderManager.getUserProvider(user.getSource())
      .flatMapSingle(userProvider -> userProvider.update(user.getExternalId(), convert(user)))
      .flatMap(idpUser -> {
        // update 'users' collection for management and audit purpose
        user.setPassword(null);
        user.setExternalId(idpUser.getId());
        user.setUpdatedAt(new Date());
        return userRepository.update(user);
      })
      .toCompletable();
}

代码示例来源:origin: io.gravitee.am.identityprovider/gravitee-am-identityprovider-api

@Override
public boolean equals(Object rhs) {
  if (rhs instanceof User) {
    return username.equals(((User) rhs).getUsername());
  }
  return false;
}

代码示例来源:origin: gravitee-io/graviteeio-access-management

@Override
protected Maybe<User> resolveResourceOwner(TokenRequest tokenRequest, Client client) {
  return extensionGrantProvider.grant(convert(tokenRequest))
      .flatMap(endUser -> {
        if (extensionGrant.isCreateUser()) {
          Map<String, Object> additionalInformation = endUser.getAdditionalInformation() == null ? new HashMap<>() : new HashMap<>(endUser.getAdditionalInformation());
          // set source provider
          additionalInformation.put("source", extensionGrant.getIdentityProvider() != null ? extensionGrant.getIdentityProvider() : extensionGrant.getId());
          additionalInformation.put("client_id", client.getClientId());
          ((DefaultUser) endUser).setAdditionalInformation(additionalInformation);
          return userAuthenticationManager.loadUser(endUser).toMaybe();
        } else {
          User user = new User();
          // we do not create AM user, user id is the idp user id
          user.setId(endUser.getId());
          user.setUsername(endUser.getUsername());
          user.setAdditionalInformation(endUser.getAdditionalInformation());
          return Maybe.just(user);
        }
      })
      .onErrorResumeNext(ex -> {
        return Maybe.error(new InvalidGrantException(ex.getMessage()));
      });
}

代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler

private Single<io.gravitee.am.identityprovider.api.User> enhanceUserWithGroups(io.gravitee.am.identityprovider.api.User user) {
  final String source = user.getAdditionalInformation() == null ? null : (String) user.getAdditionalInformation().get(SOURCE_FIELD);
  if (source != null) {
    return identityProviderManager.getIdentityProvider(source)
                    ));
            user.getAdditionalInformation().put(GROUP_MAPPING_ATTRIBUTE, groupMapping);

代码示例来源:origin: gravitee-io/graviteeio-access-management

Map<String, String> details = (Map<String, String>) event.getAuthentication().getDetails();
userService.findByDomainAndUsername(domain.getId(), principal.getUsername())
    .switchIfEmpty(Maybe.error(new UserNotFoundException(principal.getUsername())))
    .flatMapSingle(user -> {
      UpdateUser updateUser = new UpdateUser();
      updateUser.setAdditionalInformation(principal.getAdditionalInformation());
      return userService.update(domain.getId(), user.getId(), updateUser);
    })
        final NewUser newUser = new NewUser();
        newUser.setInternal(false);
        newUser.setUsername(principal.getUsername());
        if (details != null) {
          newUser.setSource(details.get(SOURCE));
        newUser.setAdditionalInformation(principal.getAdditionalInformation());
        return userService.create(domain.getId(), newUser);

代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler

@Override
public Completable resetPassword(User user) {
  // only idp manage password, find user idp and update its password
  return identityProviderManager.getUserProvider(user.getSource())
      .flatMapSingle(userProvider -> userProvider.update(user.getExternalId(), convert(user)))
      .flatMap(idpUser -> {
        // update 'users' collection for management and audit purpose
        user.setPassword(null);
        user.setExternalId(idpUser.getId());
        user.setUpdatedAt(new Date());
        return userRepository.update(user);
      })
      .toCompletable();
}

代码示例来源:origin: gravitee-io/graviteeio-access-management

@Override
public boolean equals(Object rhs) {
  if (rhs instanceof User) {
    return username.equals(((User) rhs).getUsername());
  }
  return false;
}

代码示例来源:origin: gravitee-io/graviteeio-access-management

@Override
public Single<User> update(String id, User updateUser) {
  return findById(id)
      .switchIfEmpty(Maybe.error(new UserNotFoundException(id)))
      .flatMapSingle(oldUser -> {
        Document document = new Document();
        // set username (keep the original value)
        document.put(configuration.getUsernameField(), oldUser.getUsername());
        // set password
        String password = (updateUser.getCredentials() == null) ? oldUser.getCredentials() : passwordEncoder.encode(updateUser.getCredentials());
        document.put(configuration.getPasswordField(), password);
        // set additional information
        if (updateUser.getAdditionalInformation() != null) {
          document.putAll(updateUser.getAdditionalInformation());
        }
        // set date fields
        document.put(FIELD_CREATED_AT, oldUser.getCreatedAt());
        document.put(FIELD_UPDATED_AT, new Date());
        return Single.fromPublisher(usersCollection.replaceOne(eq(FIELD_ID, oldUser.getId()), document)).flatMap(updateResult -> findById(oldUser.getId()).toSingle());
      });
}

代码示例来源:origin: gravitee-io/graviteeio-access-management

private Single<io.gravitee.am.identityprovider.api.User> enhanceUserWithGroups(io.gravitee.am.identityprovider.api.User user) {
  final String source = user.getAdditionalInformation() == null ? null : (String) user.getAdditionalInformation().get(SOURCE_FIELD);
  if (source != null) {
    return identityProviderManager.getIdentityProvider(source)
                    ));
            user.getAdditionalInformation().put(GROUP_MAPPING_ATTRIBUTE, groupMapping);

代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler

@Override
public Completable confirmRegistration(User user) {
  // user has completed his account, add it to the idp
  return identityProviderManager.getUserProvider(user.getSource())
      .flatMapSingle(userProvider -> userProvider.create(convert(user)))
      .flatMap(idpUser -> {
        // update 'users' collection for management and audit purpose
        user.setPassword(null);
        user.setRegistrationCompleted(true);
        user.setEnabled(true);
        user.setExternalId(idpUser.getId());
        user.setUpdatedAt(new Date());
        return userRepository.update(user);
      })
      .toCompletable();
}

代码示例来源:origin: gravitee-io/graviteeio-access-management

@Override
public Single<User> create(User user) {
  return findByUsername(user.getUsername())
      .isEmpty()
      .flatMap(isEmpty -> {
        if (!isEmpty) {
          return Single.error(new UserAlreadyExistsException(user.getUsername()));
        } else {
          Document document = new Document();
          // set technical id
          document.put(FIELD_ID, user.getId() != null ? user.getId() : UUID.toString(UUID.random()));
          // set username
          document.put(configuration.getUsernameField(), user.getUsername());
          // set password
          if (user.getCredentials() != null) {
            document.put(configuration.getPasswordField(), passwordEncoder.encode(user.getCredentials()));
          }
          // set additional information
          if (user.getAdditionalInformation() != null) {
            document.putAll(user.getAdditionalInformation());
          }
          // set date fields
          document.put(FIELD_CREATED_AT, new Date());
          document.put(FIELD_UPDATED_AT, document.get(FIELD_CREATED_AT));
          return Single.fromPublisher(usersCollection.insertOne(document)).flatMap(success -> findById(document.getString(FIELD_ID)).toSingle());
        }
      });
}

代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler

.flatMapSingle(user -> {
  Map<String, Object> additionalInformation = user.getAdditionalInformation() == null ? new HashMap<>() : new HashMap<>(user.getAdditionalInformation());
  additionalInformation.put("source", authInfo.getString(PROVIDER_PARAMETER));
  additionalInformation.put(OAuth2Constants.CLIENT_ID, authInfo.getString(OAuth2Constants.CLIENT_ID));

代码示例来源:origin: gravitee-io/graviteeio-access-management

@Override
public Completable confirmRegistration(User user) {
  // user has completed his account, add it to the idp
  return identityProviderManager.getUserProvider(user.getSource())
      .flatMapSingle(userProvider -> userProvider.create(convert(user)))
      .flatMap(idpUser -> {
        // update 'users' collection for management and audit purpose
        user.setPassword(null);
        user.setRegistrationCompleted(true);
        user.setEnabled(true);
        user.setExternalId(idpUser.getId());
        user.setUpdatedAt(new Date());
        return userRepository.update(user);
      })
      .toCompletable();
}

代码示例来源:origin: io.gravitee.am.identityprovider/gravitee-am-identityprovider-mongo

@Override
public Single<User> create(User user) {
  return findByUsername(user.getUsername())
      .isEmpty()
      .flatMap(isEmpty -> {
        if (!isEmpty) {
          return Single.error(new UserAlreadyExistsException(user.getUsername()));
        } else {
          Document document = new Document();
          // set technical id
          document.put(FIELD_ID, user.getId() != null ? user.getId() : UUID.toString(UUID.random()));
          // set username
          document.put(configuration.getUsernameField(), user.getUsername());
          // set password
          if (user.getCredentials() != null) {
            document.put(configuration.getPasswordField(), passwordEncoder.encode(user.getCredentials()));
          }
          // set additional information
          if (user.getAdditionalInformation() != null) {
            document.putAll(user.getAdditionalInformation());
          }
          // set date fields
          document.put(FIELD_CREATED_AT, new Date());
          document.put(FIELD_UPDATED_AT, document.get(FIELD_CREATED_AT));
          return Single.fromPublisher(usersCollection.insertOne(document)).flatMap(success -> findById(document.getString(FIELD_ID)).toSingle());
        }
      });
}

相关文章

微信公众号

最新文章

更多