package com.talentcard.server.business.admin.auth;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletResponse;
|
import org.springframework.http.HttpHeaders;
|
import org.springframework.stereotype.Component;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
|
@Component
|
public class AdminAuthInterceptor implements HandlerInterceptor {
|
public static final String OPERATOR_ID_ATTRIBUTE = "authenticatedAdminOperatorId";
|
public static final String OPERATOR_NAME_ATTRIBUTE = "authenticatedAdminOperatorName";
|
|
private final AdminAuthService service;
|
|
public AdminAuthInterceptor(AdminAuthService service) {
|
this.service = service;
|
}
|
|
@Override
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
Long operatorId = service.authenticate(request.getHeader(HttpHeaders.AUTHORIZATION));
|
request.setAttribute(OPERATOR_ID_ATTRIBUTE, operatorId);
|
request.setAttribute(OPERATOR_NAME_ATTRIBUTE, service.operatorName(operatorId));
|
return true;
|
}
|
}
|