Spring Rest filter Цепочка данных

У меня есть веб-приложение Spring Rest. И создал фильтр авторизации. на этом слое я получаю пользователя, который необходим в методах RestController. Я хочу избежать дублирования запросов к БД. Можно ли передать некоторые объекты из Filter в RestController Methods в качестве параметра?

  @Override
    public void doFilter(ServletRequest req, ServletResponse res,
                     FilterChain chain) throws IOException, 
ServletException {
        String authorization = ((HttpServletRequest) req).getHeader("Authorization");
        DeviceEntity deviceEntity = mDeviceService.byToken(authorization);
        if (deviceEntity != null) {
            if (new Date().before(deviceEntity.getExpireOn())) {
                chain.doFilter(req, res);
            }
        } else {
            ((HttpServletResponse) res).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
        }
}

Я хочу передать deviceEntity в следующий класс

@RestController
@RequestMapping("/general")
public class RestService {

    @RequestMapping(value = "/ping", method = RequestMethod.GET)
    @ResponseStatus(HttpStatus.OK)
    public void ping(DeviceEntity de) {
    //                ^^^^^^^^^^
    //i want to have access to this device here
        LOG.info("Ping called");
    }
}

Мне нужен какой-то способ передать эту сущность устройства в метод RequestMapped

0 ответов

Другие вопросы по тегам