Skip to content

Commit

Permalink
attribute verification module creation
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Dec 21, 2022
1 parent dfd34ab commit 1cb8a50
Show file tree
Hide file tree
Showing 6 changed files with 75 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="tns:AbstractAuthenticationModuleType">
<xsd:extension base="tns:AbstractCredentialAuthenticationModuleType">
<xsd:sequence>
<xsd:element name="path" type="t:ItemPathType" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Copyright (c) 2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.authentication.impl.evaluator;

import com.evolveum.midpoint.model.api.context.AttributeVerificationAuthenticationContext;
import com.evolveum.midpoint.security.api.ConnectionEnvironment;
import com.evolveum.midpoint.security.api.MidPointPrincipal;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Component;

@Component("attributeVerificationEvaluator")
public class AttributeVerificationEvaluatorImpl extends AuthenticationEvaluatorImpl<AbstractCredentialType, AttributeVerificationAuthenticationContext> {

@Override
protected void checkEnteredCredentials(ConnectionEnvironment connEnv,
AttributeVerificationAuthenticationContext authCtx) {

}

@Override
protected boolean supportsAuthzCheck() {
return true;
}

@Override
protected SecurityQuestionsCredentialsType getCredential(CredentialsType credentials) {
return credentials.getSecurityQuestions();
}

@Override
protected void validateCredentialNotNull(ConnectionEnvironment connEnv,
@NotNull MidPointPrincipal principal, AbstractCredentialType credential) {


}

@Override
protected boolean passwordMatches(
ConnectionEnvironment connEnv, @NotNull MidPointPrincipal principal,
AbstractCredentialType passwordType, AttributeVerificationAuthenticationContext authCtx) {
return true;
}

@Override
protected CredentialPolicyType getEffectiveCredentialPolicy(
SecurityPolicyType securityPolicy, AttributeVerificationAuthenticationContext authnCtx) {

return null;
}

@Override
protected boolean supportsActivation() {
return true;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ protected AuthenticationProvider getProvider(
if (credentialName.equals(processedPolicy.getName())) {
usedPolicy = processedPolicy;
}
} else if (processedPolicy.getClass().isAssignableFrom(supportedClass())) {
} else if (supportedClass() != null && processedPolicy.getClass().isAssignableFrom(supportedClass())) {
usedPolicy = processedPolicy;
}
}
}
if (usedPolicy == null && PasswordCredentialsPolicyType.class.equals(supportedClass())) {
if (usedPolicy == null && (PasswordCredentialsPolicyType.class.equals(supportedClass()) || supportedClass() == null)) {
return getObjectObjectPostProcessor().postProcess(createProvider(null));
}
if (usedPolicy == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ protected AuthenticationProvider createProvider(CredentialPolicyType usedPolicy)

@Override
protected Class<? extends CredentialPolicyType> supportedClass() {
return null; //todo
return null; //todo for now we don't have credentials policy for attribute verification
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
package com.evolveum.midpoint.authentication.impl.handler;

import java.io.IOException;
import java.util.List;
import java.util.Objects;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Expand Down Expand Up @@ -85,9 +87,11 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
if (processingSequence.getModule().size() != sequence.getModule().size()) {
continueSequence = true;
mpAuthentication.setSequence(sequence);
mpAuthentication.setAuthModules(AuthSequenceUtil.buildModuleFilters(
List<AuthModule> modules = AuthSequenceUtil.buildModuleFilters(
authModuleRegistry, sequence, request, securityPolicy.getAuthentication().getModules(),
securityPolicy.getCredentials(), mpAuthentication.getSharedObjects(), mpAuthentication.getAuthenticationChannel()));
securityPolicy.getCredentials(), mpAuthentication.getSharedObjects(), mpAuthentication.getAuthenticationChannel());
modules.removeIf(Objects::isNull);
mpAuthentication.setAuthModules(modules);
mpAuthentication.setMerged(true);
AuthModule module = getUnauthenticatedModule(mpAuthentication);
// if (module != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
package com.evolveum.midpoint.authentication.impl.provider;

import com.evolveum.midpoint.authentication.api.AuthenticationChannel;
import com.evolveum.midpoint.authentication.api.config.AuthenticationEvaluator;
import com.evolveum.midpoint.authentication.impl.evaluator.AttributeVerificationEvaluatorImpl;
import com.evolveum.midpoint.authentication.impl.module.authentication.token.AttributeVerificationToken;
import com.evolveum.midpoint.model.api.authentication.GuiProfiledPrincipal;
import com.evolveum.midpoint.model.api.context.AttributeVerificationAuthenticationContext;
Expand All @@ -28,11 +28,10 @@ public class AttributeVerificationProvider extends AbstractCredentialProvider<At

private static final Trace LOGGER = TraceManager.getTrace(AttributeVerificationProvider.class);

@Autowired
private AuthenticationEvaluator<AttributeVerificationAuthenticationContext> authenticationEvaluator;
@Autowired public AttributeVerificationEvaluatorImpl authenticationEvaluator;

@Override
protected AuthenticationEvaluator<AttributeVerificationAuthenticationContext> getEvaluator() {
protected AttributeVerificationEvaluatorImpl getEvaluator() {
return authenticationEvaluator;
}

Expand Down

0 comments on commit 1cb8a50

Please sign in to comment.