Skip to content

Commit

Permalink
Revert "schema cleanup: AbstractAuthenticationModuleType.name element…
Browse files Browse the repository at this point in the history
… usage is removed"

This reverts commit c36ef0f.
  • Loading branch information
Kateryna Honchar committed Jun 12, 2023
1 parent 8c24662 commit 2e3df13
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -123,13 +123,18 @@ private AttributeVerificationAuthenticationModuleType getModuleByIdentifier(Stri
return null;
}
UserType user = userModel.getObject();
SecurityPolicyType securityPolicy = resolveUserSecurityPolicy(user);
if (securityPolicy.getAuthentication() == null || securityPolicy.getAuthentication().getModules() == null) {
return null;
if (user == null) {
getSession().error(getString("User not found"));
throw new RestartResponseException(PageError.class);
}
SecurityPolicyType securityPolicy = resolveSecurityPolicy(user.asPrismObject());
if (securityPolicy == null || securityPolicy.getAuthentication() == null) {
getSession().error(getString("Security policy not found"));
throw new RestartResponseException(PageError.class);
}
return securityPolicy.getAuthentication().getModules().getAttributeVerification()
.stream()
.filter(m -> moduleIdentifier.equals(m.getIdentifier()))
.filter(m -> moduleIdentifier.equals(m.getIdentifier()) || moduleIdentifier.equals(m.getName()))
.findFirst()
.orElse(null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
import com.evolveum.midpoint.model.api.authentication.GuiProfiledPrincipal;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;

import com.evolveum.midpoint.web.page.error.PageError;

import org.apache.wicket.RestartResponseException;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -238,17 +236,4 @@ protected ObjectQuery createDynamicFormQuery() {
}

protected abstract DynamicFormPanel<UserType> getDynamicForm();

protected SecurityPolicyType resolveUserSecurityPolicy(UserType user) {
if (user == null) {
getSession().error(getString("User not found"));
throw new RestartResponseException(PageError.class);
}
SecurityPolicyType securityPolicy = resolveSecurityPolicy(user.asPrismObject());
if (securityPolicy == null) {
getSession().error(getString("Security policy not found"));
throw new RestartResponseException(PageError.class);
}
return securityPolicy;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.ItemDefinition;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.schema.util.SecurityPolicyUtil;
import com.evolveum.midpoint.web.component.form.MidpointForm;
import com.evolveum.midpoint.web.component.prism.DynamicFormPanel;
import com.evolveum.midpoint.web.page.error.PageError;
Expand Down Expand Up @@ -118,13 +117,18 @@ private FocusIdentificationAuthenticationModuleType getModuleByIdentifier(String
return null;
}
UserType user = userModel.getObject();
SecurityPolicyType securityPolicy = resolveUserSecurityPolicy(user);
if (securityPolicy.getAuthentication() == null || securityPolicy.getAuthentication().getModules() == null) {
return null;
if (user == null) {
getSession().error(getString("User not found"));
throw new RestartResponseException(PageError.class);
}
SecurityPolicyType securityPolicy = resolveSecurityPolicy(user.asPrismObject());
if (securityPolicy == null || securityPolicy.getAuthentication() == null) {
getSession().error(getString("Security policy not found"));
throw new RestartResponseException(PageError.class);
}
return securityPolicy.getAuthentication().getModules().getFocusIdentification()
.stream()
.filter(m -> moduleIdentifier.equals(m.getIdentifier()))
.filter(m -> moduleIdentifier.equals(m.getIdentifier()) || moduleIdentifier.equals(m.getName()))
.findFirst()
.orElse(null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ public static AuthenticationsPolicyType createDefaultAuthenticationPolicy(
new AuthenticationsPolicyType()
.beginModules()
.beginLoginForm()
.identifier(DEFAULT_MODULE_IDENTIFIER)
.name(DEFAULT_MODULE_IDENTIFIER)
.<AuthenticationModulesType>end()
.<AuthenticationsPolicyType>end()
.sequence(createDefaultSequence());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ protected AuthenticationProvider getProvider(
}

if (!usedPolicy.getClass().equals(supportedClass())) {
String moduleIdentifier = moduleType.getIdentifier();
String moduleIdentifier = StringUtils.isNotEmpty(moduleType.getIdentifier()) ? moduleType.getIdentifier() : moduleType.getName();
String message = "Module " + moduleIdentifier + "support only " + supportedClass() + " type of credential";
IllegalArgumentException e = new IllegalArgumentException(message);
LOGGER.error(message);
Expand All @@ -113,6 +113,10 @@ protected AuthenticationProvider getProvider(
return getObjectObjectPostProcessor().postProcess(createProvider(usedPolicy));
}

private String getCredentialAuthModuleIdentifier(AbstractCredentialAuthenticationModuleType module) {
return StringUtils.isNotEmpty(module.getIdentifier()) ? module.getIdentifier() : module.getName();
}

protected abstract ModuleAuthenticationImpl createEmptyModuleAuthentication(
AbstractAuthenticationModuleType moduleType, C configuration, AuthenticationSequenceModuleType sequenceModule);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ protected static <T extends ModuleWebSecurityConfiguration> T build(T configurat
}

protected static String getAuthenticationModuleIdentifier(AbstractAuthenticationModuleType module) {
return module.getIdentifier();
return StringUtils.isNotEmpty(module.getIdentifier()) ? module.getIdentifier() : module.getName();
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,38 @@ private static List<AuthModule> getSpecificModuleFilter(AuthModuleRegistryImpl a
return null;
}

/**
* starting from 4.7 identifier should be used instead of name
* leaving this method just to support old config working (until deprecated name attribute is removed at all)
* @param name
* @param authenticationModulesType
* @return
*/
private static AbstractAuthenticationModuleType getModuleByName(
String name, AuthenticationModulesType authenticationModulesType) {
PrismContainerValue<?> modulesContainerValue = authenticationModulesType.asPrismContainerValue();
List<AbstractAuthenticationModuleType> modules = new ArrayList<>();
modulesContainerValue.accept(v -> {
if (!(v instanceof PrismContainer)) {
return;
}

PrismContainer<?> c = (PrismContainer<?>) v;
if (!(AbstractAuthenticationModuleType.class.isAssignableFrom(Objects.requireNonNull(c.getCompileTimeClass())))) {
return;
}

c.getValues().forEach(x -> modules.add((AbstractAuthenticationModuleType) ((PrismContainerValue<?>) x).asContainerable()));
});

for (AbstractAuthenticationModuleType module : modules) {
if (module.getName() != null && module.getName().equals(name)) {
return module;
}
}
return null;
}

private static AbstractAuthenticationModuleType getModuleByIdentifier(String identifier, AuthenticationModulesType authenticationModulesType) {
PrismContainerValue<?> modulesContainerValue = authenticationModulesType.asPrismContainerValue();
List<AbstractAuthenticationModuleType> modules = new ArrayList<>();
Expand All @@ -363,7 +395,7 @@ private static AbstractAuthenticationModuleType getModuleByIdentifier(String ide
});

for (AbstractAuthenticationModuleType module : modules) {
String moduleIdentifier = module.getIdentifier();
String moduleIdentifier = StringUtils.isNotEmpty(module.getIdentifier()) ? module.getIdentifier() : module.getName();
if (moduleIdentifier != null && StringUtils.equals(moduleIdentifier, identifier)) {
return module;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -348,8 +348,9 @@ private <AM extends AbstractAuthenticationModuleType> void mergeAuthenticationMo
listToProcess.forEach(itemToProcess -> {
boolean exist = false;
for (AM item : mergedList) {
String itemIdentifier = item.getIdentifier();
String itemToProcessIdentifier = itemToProcess.getIdentifier();
String itemIdentifier = StringUtils.isNotEmpty(item.getIdentifier()) ? item.getIdentifier() : item.getName();
String itemToProcessIdentifier = StringUtils.isNotEmpty(itemToProcess.getIdentifier()) ?
itemToProcess.getIdentifier() : itemToProcess.getName();
if (itemIdentifier != null && StringUtils.equals(itemIdentifier, itemToProcessIdentifier)) {
exist = true;
break;
Expand Down

0 comments on commit 2e3df13

Please sign in to comment.