package com.iailab.framework.security.core.aop; import com.iailab.framework.security.core.annotations.PreAuthenticated; import com.iailab.framework.security.core.util.SecurityFrameworkUtils; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import static com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants.UNAUTHORIZED; import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception; @Aspect @Slf4j public class PreAuthenticatedAspect { @Around("@annotation(preAuthenticated)") public Object around(ProceedingJoinPoint joinPoint, PreAuthenticated preAuthenticated) throws Throwable { if (SecurityFrameworkUtils.getLoginUser() == null) { throw exception(UNAUTHORIZED); } return joinPoint.proceed(); } }