use of cz.metacentrum.perun.core.api.exceptions.ExtSourceNotExistsException in project perun by CESNET.
the class UsersManagerBlImpl method checkThatCandidateUesesDontExist.
/**
* Check that none of the given userExtSources exist. If so, the UserExtSourceExistsException
* is thrown.
*
* @param sess session
* @param candidate candidate
* @throws UserExtSourceExistsException if some of the given userExtSources already exist.
*/
private void checkThatCandidateUesesDontExist(PerunSession sess, Candidate candidate) throws UserExtSourceExistsException {
if (candidate.getUserExtSources() != null) {
for (UserExtSource ues : candidate.getUserExtSources()) {
// Check if the extSource exists
ExtSource tmpExtSource = getPerunBl().getExtSourcesManagerBl().checkOrCreateExtSource(sess, ues.getExtSource().getName(), ues.getExtSource().getType());
// Set the extSource ID
ues.getExtSource().setId(tmpExtSource.getId());
try {
// Try to find the user by userExtSource
User user = getPerunBl().getUsersManagerBl().getUserByExtSourceNameAndExtLogin(sess, ues.getExtSource().getName(), ues.getLogin());
if (user != null) {
throw new UserExtSourceExistsException(ues);
}
} catch (UserExtSourceNotExistsException | UserNotExistsException | ExtSourceNotExistsException e) {
// This is OK, we don't want it to exist
}
}
}
}
use of cz.metacentrum.perun.core.api.exceptions.ExtSourceNotExistsException in project perun by CESNET.
the class ElixirPasswordManagerModule method validatePassword.
@Override
public void validatePassword(PerunSession sess, String userLogin, User user) throws InvalidLoginException {
if (user == null) {
user = ((PerunBl) sess.getPerun()).getModulesUtilsBl().getUserByLoginInNamespace(sess, userLogin, actualLoginNamespace);
}
if (user == null) {
log.warn("No user was found by login '{}' in {} namespace.", userLogin, actualLoginNamespace);
} else {
// set extSources and extSource related attributes
try {
ExtSource extSource = ((PerunBl) sess.getPerun()).getExtSourcesManagerBl().getExtSourceByName(sess, "ELIXIR-EUROPE.ORG");
UserExtSource ues = new UserExtSource(extSource, userLogin + "@ELIXIR-EUROPE.ORG");
ues.setLoa(0);
try {
((PerunBl) sess.getPerun()).getUsersManagerBl().addUserExtSource(sess, user, ues);
} catch (UserExtSourceExistsException ex) {
// this is OK
}
List<String> kerberosLogins = new ArrayList<>();
// Store also Kerberos logins
Attribute kerberosLoginsAttr = ((PerunBl) sess.getPerun()).getAttributesManagerBl().getAttribute(sess, user, AttributesManager.NS_USER_ATTR_DEF + ":" + "kerberosLogins");
if (kerberosLoginsAttr != null && kerberosLoginsAttr.getValue() != null) {
kerberosLogins.addAll((List<String>) kerberosLoginsAttr.getValue());
}
if (!kerberosLogins.contains(userLogin + "@ELIXIR-EUROPE.ORG") && kerberosLoginsAttr != null) {
kerberosLogins.add(userLogin + "@ELIXIR-EUROPE.ORG");
kerberosLoginsAttr.setValue(kerberosLogins);
((PerunBl) sess.getPerun()).getAttributesManagerBl().setAttribute(sess, user, kerberosLoginsAttr);
}
} catch (WrongAttributeAssignmentException | AttributeNotExistsException | ExtSourceNotExistsException | WrongAttributeValueException | WrongReferenceAttributeValueException ex) {
throw new InternalErrorException(ex);
}
}
// validate password
super.validatePassword(sess, userLogin, user);
}
use of cz.metacentrum.perun.core.api.exceptions.ExtSourceNotExistsException in project perun by CESNET.
the class MuPasswordManagerModule method validatePassword.
@Override
public void validatePassword(PerunSession sess, String userLogin, User user) throws InvalidLoginException {
if (user == null) {
user = ((PerunBl) sess.getPerun()).getModulesUtilsBl().getUserByLoginInNamespace(sess, userLogin, "mu");
}
if (user == null) {
log.warn("No user was found by login '{}' in {} namespace.", userLogin, "mu");
} else {
// set extSources and extSource related attributes
try {
ExtSource extSource = ((PerunBl) sess.getPerun()).getExtSourcesManagerBl().getExtSourceByName(sess, "https://idp2.ics.muni.cz/idp/shibboleth");
UserExtSource ues = new UserExtSource(extSource, userLogin + "@muni.cz");
ues.setLoa(2);
try {
((PerunBl) sess.getPerun()).getUsersManagerBl().addUserExtSource(sess, user, ues);
} catch (UserExtSourceExistsException ex) {
// this is OK
}
} catch (ExtSourceNotExistsException ex) {
throw new InternalErrorException(ex);
}
}
// MU doesn't validate password
}
use of cz.metacentrum.perun.core.api.exceptions.ExtSourceNotExistsException in project perun by CESNET.
the class ExtSourcesManagerEntry method getCandidate.
@Override
public Candidate getCandidate(PerunSession sess, ExtSource source, String login) throws PrivilegeException, ExtSourceNotExistsException, CandidateNotExistsException, ExtSourceUnsupportedOperationException {
Utils.checkPerunSession(sess);
getExtSourcesManagerBl().checkExtSourceExists(sess, source);
// Authorization
if (!AuthzResolver.authorizedInternal(sess, "getCandidate_ExtSource_String_policy", source))
throw new PrivilegeException(sess, "getCandidate");
try {
return new Candidate(getExtSourcesManagerBl().getCandidate(sess, source, login));
// we need to close the extsource here because we don't want to always do it in the BL layer
} finally {
if (source instanceof ExtSourceSimpleApi) {
try {
((ExtSourceSimpleApi) source).close();
} catch (ExtSourceUnsupportedOperationException e) {
// silently skip
} catch (Exception e) {
log.error("Failed to close connection to extsource", e);
}
}
}
}
use of cz.metacentrum.perun.core.api.exceptions.ExtSourceNotExistsException in project perun by CESNET.
the class UsersManagerBlImpl method createUser.
@Override
public User createUser(PerunSession sess, User user) {
// trim input
if (user.getFirstName() != null)
user.setFirstName(user.getFirstName().trim());
if (user.getLastName() != null)
user.setLastName(user.getLastName().trim());
if (user.getMiddleName() != null)
user.setMiddleName(user.getMiddleName().trim());
if (user.getTitleBefore() != null)
user.setTitleBefore(user.getTitleBefore().trim());
if (user.getTitleAfter() != null)
user.setTitleAfter(user.getTitleAfter().trim());
// Convert empty strings to null
if (user.getFirstName() != null && user.getFirstName().isEmpty())
user.setFirstName(null);
if (user.getLastName() != null && user.getLastName().isEmpty())
user.setLastName(null);
if (user.getMiddleName() != null && user.getMiddleName().isEmpty())
user.setMiddleName(null);
if (user.getTitleBefore() != null && user.getTitleBefore().isEmpty())
user.setTitleBefore(null);
if (user.getTitleAfter() != null && user.getTitleAfter().isEmpty())
user.setTitleAfter(null);
user = getUsersManagerImpl().createUser(sess, user);
getPerunBl().getAuditer().log(sess, new UserCreated(user));
// Add default userExtSource
ExtSource es;
try {
es = getPerunBl().getExtSourcesManagerBl().getExtSourceByName(sess, ExtSourcesManager.EXTSOURCE_NAME_PERUN);
} catch (ExtSourceNotExistsException e1) {
throw new ConsistencyErrorException("Default extSource PERUN must exists! It is created in ExtSourcesManagerImpl.init function.", e1);
}
UserExtSource ues = new UserExtSource(es, 0, String.valueOf(user.getId()));
try {
this.addUserExtSource(sess, user, ues);
} catch (UserExtSourceExistsException e) {
throw new ConsistencyErrorException(e);
}
return user;
}
Aggregations