use of com.evolveum.midpoint.model.api.validator.StringLimitationResult in project midpoint by Evolveum.
the class ValuePolicyProcessor method testMinimalUniqueCharacters.
private StringLimitationResult testMinimalUniqueCharacters(String password, LimitationsType limitations, OperationResult result, List<LocalizableMessage> message) {
if (limitations.getMinUniqueChars() == null) {
return null;
}
HashSet<String> distinctCharacters = new HashSet<>(StringPolicyUtils.stringTokenizer(password));
StringLimitationResult limitation = new StringLimitationResult();
limitation.setMinOccurs(limitations.getMinUniqueChars());
PolyStringType name = new PolyStringType("unique characters");
PolyStringTranslationType translation = new PolyStringTranslationType();
translation.setKey("ValuePolicy.uniqueCharacters");
name.setTranslation(translation);
limitation.setName(name);
limitation.setSuccess(true);
if (limitations.getMinUniqueChars() > distinctCharacters.size()) {
LocalizableMessage msg = new LocalizableMessageBuilder().key("ValuePolicy.minimalUniqueCharactersNotMet").arg(limitations.getMinUniqueChars()).arg(distinctCharacters.size()).build();
result.addSubresult(new OperationResult("Check minimal count of unique chars", OperationResultStatus.FATAL_ERROR, msg));
message.add(msg);
limitation.setSuccess(false);
}
return limitation;
}
use of com.evolveum.midpoint.model.api.validator.StringLimitationResult in project midpoint by Evolveum.
the class ValuePolicyProcessor method testMinimalOccurrence.
private StringLimitationResult testMinimalOccurrence(StringLimitType stringLimitation, int count, OperationResult result, List<LocalizableMessage> messages, StringLimitationResult limitation) {
if (stringLimitation.getMinOccurs() == null) {
return limitation;
}
if (limitation == null) {
limitation = new StringLimitationResult();
limitation.setMinOccurs(stringLimitation.getMinOccurs());
limitation.setSuccess(true);
} else {
limitation.setMinOccurs(stringLimitation.getMinOccurs());
}
if (count < stringLimitation.getMinOccurs()) {
LocalizableMessage msg = new LocalizableMessageBuilder().key("ValuePolicy.minimalOccurrenceNotMet").arg(stringLimitation.getMinOccurs()).arg(stringLimitation.getDescription()).arg(count).build();
result.addSubresult(new OperationResult("Check minimal occurrence of characters", OperationResultStatus.FATAL_ERROR, msg));
messages.add(msg);
limitation.setSuccess(false);
}
return limitation;
}
use of com.evolveum.midpoint.model.api.validator.StringLimitationResult in project midpoint by Evolveum.
the class ValuePolicyProcessor method testCheckExpression.
private List<StringLimitationResult> testCheckExpression(String newPassword, LimitationsType lims, ExpressionProfile expressionProfile, ObjectBasedValuePolicyOriginResolver<?> originResolver, String shortDesc, Task task, OperationResult result, List<LocalizableMessage> messages) throws SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, SecurityViolationException {
List<StringLimitationResult> limitations = new ArrayList<>();
for (CheckExpressionType checkExpression : lims.getCheckExpression()) {
ExpressionType expressionType = checkExpression.getExpression();
if (expressionType == null) {
continue;
}
StringLimitationResult limitation = new StringLimitationResult();
PolyStringType name = null;
if (checkExpression.getDisplay() != null) {
name = checkExpression.getDisplay().getLabel();
limitation.setHelp(checkExpression.getDisplay().getHelp());
}
if (name == null) {
name = new PolyStringType("Check expression");
PolyStringTranslationType translation = new PolyStringTranslationType();
translation.setKey("ValuePolicy.checkExpression");
name.setTranslation(translation);
}
limitation.setName(name);
limitation.setSuccess(true);
if (!checkExpression(newPassword, expressionType, expressionProfile, originResolver, shortDesc, task, result)) {
LocalizableMessage msg;
if (checkExpression.getLocalizableFailureMessage() != null) {
msg = LocalizationUtil.toLocalizableMessage(checkExpression.getLocalizableFailureMessage());
} else if (checkExpression.getFailureMessage() != null) {
msg = LocalizableMessageBuilder.buildFallbackMessage(checkExpression.getFailureMessage());
} else {
msg = LocalizableMessageBuilder.buildKey("ValuePolicy.checkExpressionFailed");
}
result.addSubresult(new OperationResult("Check expression", OperationResultStatus.FATAL_ERROR, msg));
messages.add(msg);
limitation.setSuccess(false);
}
limitations.add(limitation);
}
return limitations;
}
Aggregations