2010-06-09 15 views

Odpowiedz

8

Możesz dodać nagłówki według konfiguracji. W jetty.xml umieścić następujący przykład:

<New id="RewriteHandler" class="org.eclipse.jetty.rewrite.handler.RewriteHandler"> 
    <Set name="rules"> 
    <Array type="org.eclipse.jetty.rewrite.handler.Rule"> 

     <Item> 
     <New id="header" class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule"> 
      <Set name="pattern">*.jsp</Set> 
      <Set name="name">myheader</Set> 
      <Set name="value">the value of myheader</Set> 
     </New> 
     </Item> 

    </Array> 
    </Set> 
</New> 

<Set name="handler"> 
    <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"> 
    <Set name="handlers"> 
     <Array type="org.eclipse.jetty.server.Handler"> 
     <Item> 
      <Ref id="RewriteHandler"/> 
     </Item> 
     </Array> 
    </Set> 
    </New> 
</Set> 

Zobacz RewriteHandler api więcej przykładów tego, co jest możliwe (to był już dostępny w Jetty 6 RewriteHandler)

Aby uzyskać więcej informacji, tutaj jest moja konfiguracja Maven z wtyczką pomost:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>8.1.5.v20120716</version> 
    <configuration> 
    <jettyXml>${basedir}/src/main/etc/jetty.xml</jettyXml> 
    </configuration> 
    <dependencies> 
    <dependency> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-http</artifactId> 
     <version>8.1.5.v20120716</version> 
     <type>jar</type> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-rewrite</artifactId> 
     <version>8.1.5.v20120716</version> 
     <type>jar</type> 
     <scope>runtime</scope> 
    </dependency> 
    </dependencies> 
</plugin> 
+0

Łącza są martwe – Rushil

8

Odpowiedź generycznych na moje pytanie jest oczywiście tym:

<web-app> 

    <filter> 
    <filter-name>headersFilter</filter-name> 
    <filter-class>com.example.MyHeadersFilter</filter-class> 
    </filter> 

    <filter-mapping> 
    <filter-name>headersFilter</filter-name> 
    <url-pattern>*</url-pattern> 
    </filter-mapping> 

    ... 

</web-app> 

public class MyHeadersFilter implements Filter { 

    @Override 
    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) 
      throws IOException, 
      ServletException { 

     final HttpServletRequest httpRequest = (HttpServletRequest) request; 
     final HttpServletResponse httpResponse = (HttpServletResponse) response; 

     final String requestUri = httpRequest.getRequestURI(); 

     if (requestUri.matches(...)) { 
      httpResponse.addHeader(...); 
     } 

     chain.doFilter(request, response); 
    } 
} 

to powinno działać w dowolnym pojemniku JavaEE internetowej (i mogą być bardziej konfigurowalny z <init-param> s).

Ale czy nie ma sposobu, aby to zrobić wyłącznie deklaratywnie w Mola?

+0

Akceptowane aż ktoś dowiaduje się, jak to zrobić deklaratywnie. –

Powiązane problemy