¿Los filter de acuerdo con la explicación del maestro serian gráficamente las barras verticales? y ¿la idea es que vallan con un head para la validacion de las peticiones put, delete, etc para control de seguridad?
¿Los filter de acuerdo con la explicación del maestro serian gráficamente las barras verticales? y ¿la idea es que vallan con un head para la validacion de las peticiones put, delete, etc para control de seguridad?
¡Hola Edwin!
Sí, en la imagen que compartiste, las barras verticales representan los filtros. Los filtros en Java se utilizan para procesar solicitudes y respuestas antes de que lleguen al DispatcherServlet
o después de que salgan de él. Son útiles para tareas como la seguridad, el registro de actividades o la auditoría.
Respecto a tu pregunta sobre el uso de filtros para la validación de peticiones como PUT, DELETE, etc., es común usar filtros para verificar encabezados (headers) de las solicitudes. Esto puede incluir la autenticación, la autorización o cualquier otra lógica de seguridad que desees implementar. Los filtros pueden revisar estos encabezados y decidir si la solicitud debe continuar o no.
Aquí tienes un ejemplo básico de cómo podrías implementar un filtro para verificar un encabezado específico:
@WebFilter(urlPatterns = "/api/**")
public class SecurityFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String authHeader = httpRequest.getHeader("Authorization");
if (authHeader != null && authHeader.startsWith("Bearer ")) {
// Lógica de validación del token
chain.doFilter(request, response);
} else {
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized");
}
}
}
Espero que esto aclare tus dudas. ¡Espero haber ayudado y buenos estudios!