本文整理了Java中io.gravitee.am.identityprovider.api.User
类的一些代码示例,展示了User
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。User
类的具体详情如下:
包路径:io.gravitee.am.identityprovider.api.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());
}
});
}
内容来源于网络,如有侵权,请联系作者删除!