use of org.apereo.cas.api.AuthenticationRiskScore in project cas by apereo.
the class DefaultAuthenticationRiskEvaluator method eval.
@Audit(action = "EVALUATE_RISKY_AUTHENTICATION", actionResolverName = "ADAPTIVE_RISKY_AUTHENTICATION_ACTION_RESOLVER", resourceResolverName = "ADAPTIVE_RISKY_AUTHENTICATION_RESOURCE_RESOLVER")
@Override
public AuthenticationRiskScore eval(final Authentication authentication, final RegisteredService service, final HttpServletRequest request) {
if (this.calculators.isEmpty()) {
return new AuthenticationRiskScore(AuthenticationRequestRiskCalculator.HIGHEST_RISK_SCORE);
}
final List<AuthenticationRiskScore> scores = new ArrayList<>();
this.calculators.stream().forEach(r -> scores.add(r.calculate(authentication, service, request)));
final BigDecimal sum = scores.stream().map(AuthenticationRiskScore::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
final BigDecimal score = sum.divide(BigDecimal.valueOf(this.calculators.size()), 2, BigDecimal.ROUND_UP);
return new AuthenticationRiskScore(score);
}
Aggregations