class SentinelStrategyRequestOriginParser implements RequestOriginParser {
    @Value("${" + SentinelStrategyLimiterConstant.SPRING_APPLICATION_STRATEGY_SENTINEL_REQUEST_ORIGIN_KEY + ":" + DiscoveryConstant.N_D_SERVICE_ID + "}")
    protected String requestOriginKey;

    @Autowired(required = false)
    protected SentinelStrategyRequestOriginAdapter sentinelStrategyRequestOriginAdapter;

    public SentinelStrategyRequestOriginParser() {
        WebCallbackManager.setRequestOriginParser(this);
    }

    @Override
    public String parseOrigin(HttpServletRequest request) {<FILL_FUNCTION_BODY>}
}

        if (sentinelStrategyRequestOriginAdapter != null) {
            return sentinelStrategyRequestOriginAdapter.parseOrigin(request);
        } else {
            String requestOriginValue = request.getHeader(requestOriginKey);

            return StringUtils.isNotEmpty(requestOriginValue) ? requestOriginValue : DiscoveryConstant.UNKNOWN;
        }
    
<no_super_class>