2017-03-17 44 views
0

我試圖在春季啓動應用程序中將自定義篩選器應用於我的端點,但是無法更改我的響應狀態,但即使將其手動更改爲401,它也會返回200。Spring引導REST api實現自定義篩選器

@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); 

    } 

} 

任何有關什麼可能會導致此問題的建議?

+0

嘗試:'如果(終點){如果(authHeader == ...){response.setStatus(401); } else {chain.doFilter(request,response);}} else else {chain.doFilter(request,response);}' –

+0

是的,這個工程,非常感謝! – JustinCredible

回答

相關問題