Skip to the content.

Лекция 22.04

Filters and Interceptors. Spring Security. Authentication and authorization

Filters and Interceptors (Фильтры и интерсепторы)

Как запросы попадают в Controller?

Как создать фильтр:

@Component
public class LogFilter implements Filter {

    private static final Logger logger = LogManager.getLogger(LogFilter.class);

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        logger.info("Hello from: " + request.getLocalAddr());
        chain.doFilter(request, response);
    }

}

Как создать интерсептор:

public class LogInterceptor implements HandlerInterceptor {

    private Logger logger = LoggerFactory.getLogger(LogInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 
      throws Exception {
        logger.info("preHandle");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) 
      throws Exception {
        logger.info("postHandle");
        // после обработчика, уже не можем поменять респонс
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) 
      throws Exception {
        logger.info("afterCompletion");
    }

}

Лучше использовать фильтры для:

Лучше использовать интерспеторы для:

Статейка про фильтры и интерсепторы

JWT токен (JSON Web Token)

JWT состоит из трех основных частей: заголовка (header), нагрузки (payload) и подписи (signature). Заголовок и нагрузка формируются отдельно в формате JSON, кодируются в base64, а затем на их основе вычисляется подпись. Закодированные части соединяются друг с другом, и на их основе вычисляется подпись, которая также становится частью токена.

https://struchkov.dev/blog/ru/what-is-jwt/ https://struchkov.dev/blog/ru/jwt-implementation-in-spring/