본문 바로가기
study/Spring

[Spring] 24. Spring (회원만접근가능하게 설정[CartAspect.java, CartException.java])

by 금이패런츠 2022. 5. 10.
728x90
반응형

CartAspect.java

package aop;

import javax.servlet.http.HttpSession;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

import exception.CartException;
import exception.LoginException;
import logic.Cart;
import logic.User;

@Component
@Aspect
public class CartAspect {
	@Around("execution(* controller.Cart*.check*(..)) && args(..,session)")
	public Object cartCheck(ProceedingJoinPoint joinPoint, HttpSession session)
		throws Throwable {
		User loginUser = (User)session.getAttribute("loginUser");
		if(loginUser == null) {
			throw new LoginException("회원만 주문 가능합니다. 로그인 하세요","../user/login");
		}
		Cart cart = (Cart)session.getAttribute("CART");
		if(cart == null || cart.getItemSetList().size() == 0) {
			throw new CartException("장바구니에 주문 상품이 없습니다","../item/list");
		}
		return joinPoint.proceed();
	}
}

CartException.java

package exception;

public class CartException extends RuntimeException {
	private String url;
	public CartException(String msg, String url) {
		super(msg);
		this.url = url;
	}
	public String getUrl() {
		return url;
	}
}
728x90
반응형