diff options
Diffstat (limited to 'portal-BE/src/main/java/org/onap/portal/aop/service/FnUserServiceAOP.java')
-rw-r--r-- | portal-BE/src/main/java/org/onap/portal/aop/service/FnUserServiceAOP.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/portal-BE/src/main/java/org/onap/portal/aop/service/FnUserServiceAOP.java b/portal-BE/src/main/java/org/onap/portal/aop/service/FnUserServiceAOP.java new file mode 100644 index 00000000..0cb17cc6 --- /dev/null +++ b/portal-BE/src/main/java/org/onap/portal/aop/service/FnUserServiceAOP.java @@ -0,0 +1,37 @@ +package org.onap.portal.aop.service; + +import java.security.Principal; +import java.util.stream.Collectors; +import javax.validation.ConstraintViolation; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.onap.portal.domain.db.fn.FnUser; +import org.onap.portal.validation.DataValidator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Aspect +@Component +public class FnUserServiceAOP { + private static final Logger LOGGER = LoggerFactory.getLogger(FnLanguageServiceAOP.class); + + @Autowired + private DataValidator dataValidator; + + @Before("execution(* org.onap.portal.service.fn.FnUserService.saveFnUser(..)) && args(principal, fnUser)") + public void save(final Principal principal, final FnUser fnUser) { + if (fnUser == null) { + LOGGER.error("User " + principal.getName() + " try to save NULL fnUser"); + throw new NullPointerException("FnUser cannot be null or empty"); + } + if (!dataValidator.isValid(fnUser)) { + String violations = dataValidator.getConstraintViolations(fnUser).stream() + .map(ConstraintViolation::getMessage) + .collect(Collectors.joining(", ")); + LOGGER.error("User " + principal.getName() + " try to save not valid fnUser: " + violations); + throw new IllegalArgumentException("FnUser is not valid, " + violations); + } + } +} |