Ich versuche, einen benutzerdefinierten Filter auf meine Endpunkte in einer Spring-Boot-Anwendung anwenden, aber ich kann nicht den Status meiner Antwort ändern, gibt es 200, obwohl ich es manuell zu 401 ändern.Spring Boot REST API Implementierung von benutzerdefinierten Filter
@Component
public class AuthFilter extends GenericFilterBean {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = ((HttpServletRequest) req);
HttpServletResponse response = ((HttpServletResponse) res);
String URI = request.getRequestURI();
String authHeader = request.getHeader("Authorization");
boolean endPoint = URI.startsWith("/auth/") || URI.startsWith("/resource/") || URI.startsWith("/project/") || URI.startsWith("/skill/");
if(endPoint) {
if(authHeader == null || !authHeader.startsWith("Bearer")) {
response.setStatus(401);
}
}
chain.doFilter(request, response);
}
}
Irgendwelche Vorschläge, was zu diesem Problem führen könnte?
versuchen, mit: 'if (endPoint) {if (authHeader == ...) {response.setStatus (401); } else {chain.doFilter (Anfrage, Antwort);}} else {chain.doFilter (Anfrage, Antwort);} ' –
Ja, das funktioniert, sehr geschätzt! – JustinCredible