2016-04-15 5 views
2

Есть ли способ скрыть версию версии vaadin (i.e v = 7.6.2) в источнике страницы? Также возможно ли изменить каталог по умолчанию «VAADIN» на любой другой каталог или переименовать его?Можно ли скрыть версию Vaadin

enter image description here

+1

Согласен, это было бы хорошо из соображений безопасности. Вы всегда должны использовать последнюю версию, но было бы неплохо скрыть ее, если вы несколько дней назад. –

ответ

1

Я думаю, что это невозможно, чтобы избавиться от имени каталога Vaadin, потому что это жёстко в некоторых каркасных классов на стороне сервера и клиента. Например: com.vaadin.server.BootstrapHandler, com.vaadin.server.VaadinServlet и com.vaadin.client.ui.ui.UIConnector

1

С технической точки зрения можно скрыть версию Vaadin. Все, что вам нужно, это зарегистрироваться BootstrapListener в начале сессии Servlet

public class ApplicationBootstrapListener implements BootstrapListener { 

    @Override 
    public void modifyBootstrapFragment(BootstrapFragmentResponse response) { 
     List<Node> nodes = response.getFragmentNodes(); 
     for (Node node : nodes) { 
      if (node.toString() 
        .contains("js?v=")) { 
       String fakeVersion = node.attr("src") 
             .replace("7.5.8", "1.1.1"); 
       node.attributes() 
        .put("src", fakeVersion); 
      } 
     } 
    } 

    @Override 
    public void modifyBootstrapPage(BootstrapPageResponse response) { 
    } 
} 

    //somewhere in servletInitialized() 
getService().addSessionInitListener(event -> event.getSession() 
         .addBootstrapListener(
           new ApplicationBootstrapListener())); 

После этого шага приложения должен прекратить работу, хотя. Это потому, что Ваадин не сможет найти vaadinBootstrap.js, так как вы изменили свое название. Возможно, вам придется скопировать содержимое этого JavaScript, поместить его где-нибудь в общую папку и переименовать его под любое поддельное имя (в моем случае это будет vaadinBootstrap.js?v=1.1.1.

Что касается второго вопроса, я также думаю, что это невозможно, по крайней мере, без помощи обратного инжиниринга.

Смежные вопросы