use of cz.metacentrum.perun.core.api.ExtSource 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.ExtSource in project perun by CESNET.
the class MembersManagerBlImpl method createMember.
/*
* This method finally has to call this.createMember(PerunSession sess, Vo vo, UserExtSource userExtSource)
* @see cz.metacentrum.perun.core.api.MembersManager#createMember(cz.metacentrum.perun.core.api.PerunSession, cz.metacentrum.perun.core.api.Vo, java.lang.String, java.lang.String, java.lang.String, cz.metacentrum.perun.core.api.Candidate)
*/
@Override
public Member createMember(PerunSession sess, Vo vo, String extSourceName, String extSourceType, String login, Candidate candidate, List<Group> groups) throws WrongAttributeValueException, WrongReferenceAttributeValueException, AlreadyMemberException, ExtendMembershipException {
// Create ExtSource object
ExtSource extSource = new ExtSource();
extSource.setName(extSourceName);
extSource.setType(extSourceType);
// Create UserExtSource object
UserExtSource userExtSource = new UserExtSource();
userExtSource.setLogin(login);
userExtSource.setExtSource(extSource);
// Set all above data to the candidate's userExtSource
candidate.setUserExtSource(userExtSource);
return this.createMember(sess, vo, candidate, groups);
}
use of cz.metacentrum.perun.core.api.ExtSource 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.ExtSource 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.ExtSource in project perun by CESNET.
the class GroupsManagerEntryIntegrationTest method reactivateMemberWithExtensionForDefinedLoa.
@Test
public void reactivateMemberWithExtensionForDefinedLoa() throws Exception {
System.out.println(CLASS_NAME + "reactivateMemberWithExtensionForDefinedLoa");
ExtSource es = perun.getExtSourcesManagerBl().createExtSource(sess, extSource, null);
// set up member in group and vo
Vo vo = setUpVo();
Member member = setUpMember(vo);
// set up group
groupsManagerBl.createGroup(sess, vo, group);
groupsManagerBl.addMember(sess, group, member);
// set membershipExpirationRules attribute
HashMap<String, String> extendMembershipRules = new LinkedHashMap<>();
extendMembershipRules.put(AbstractMembershipExpirationRulesModule.membershipPeriodKeyName, "1.1.");
extendMembershipRules.put(AbstractMembershipExpirationRulesModule.membershipPeriodLoaKeyName, "0|+1m");
Attribute extendMembershipRulesAttribute = new Attribute(attributesManager.getAttributeDefinition(sess, AttributesManager.NS_GROUP_ATTR_DEF + ":groupMembershipExpirationRules"));
extendMembershipRulesAttribute.setValue(extendMembershipRules);
attributesManager.setAttribute(sess, group, extendMembershipRulesAttribute);
// try to reactivate membership
groupsManagerBl.reactivateMember(sess, member, group);
Attribute membershipAttribute = attributesManager.getAttribute(sess, member, group, AttributesManager.NS_MEMBER_GROUP_ATTR_DEF + ":groupMembershipExpiration");
LocalDate expectedDate = LocalDate.parse((String) membershipAttribute.getValue());
LocalDate requiredDate = LocalDate.now().plusMonths(1);
assertEquals("Year must match", requiredDate.getYear(), expectedDate.getYear());
assertEquals("Month must match", requiredDate.getMonthValue(), expectedDate.getMonthValue());
assertEquals("Day must match", requiredDate.getDayOfMonth(), expectedDate.getDayOfMonth());
}
Aggregations