2015-01-29 4 views
1

Как включить переписывание URL-адресов в dropwizard? Мне нужно переписать все URL-адреса, соответствующие определенному шаблону, в /.Dropwizard url rewriting

Я использую dropwizard 0.7.1, и я пытаюсь запустить Angular.js приложение в режиме html5 в переднем конце, и это требует перезаписи URL (см https://docs.angularjs.org/guide/ $ расположение под боковой разделе сервера) ,

ответ

1

Вы можете добавить Filter так:

environment.getApplicationContext().addFilter(
    new FilterHolder(new Filter() { 

    @Override 
    public void init(FilterConfig filterConfig) throws ServletException {} 

    @Override 
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
     throws IOException, ServletException { 
    HttpServletRequest request = (HttpServletRequest) req; 
    HttpServletResponse response = (HttpServletResponse) res; 

    if (shouldRedirect(request.getRequestURI())) { 
     response.sendRedirect("/"); 
    } else { 
     chain.doFilter(req, res); 
    } 
    } 

    @Override 
    public void destroy() {} 
}), "/*", EnumSet.allOf(DispatcherType.class)); 
+0

Я не хочу перенаправлять клиента, я хочу выполнить переписывание URL-адресов на стороне сервера. Как mod_rewrite в apache2. –