package com.sonic.common.auth;

import org.springframework.beans.BeanUtils;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 因为调用会经过网关转发, 而我们更关注的是原始调用服务的信息.
 * 所有OriginalCaller记录调用服务的原始调用方对象信息.
 * 这些信息会放在Http Header: xg-original-caller
 * @author code
 */
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
public class OriginalCaller extends AuthCaller {
    public static OriginalCaller fromAuthCaller(AuthCaller authCaller) {
        OriginalCaller originalCaller = new OriginalCaller();
        BeanUtils.copyProperties(authCaller, originalCaller);
        return originalCaller;
    }
}
