[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [jetty-users] how to get the request header's specified field and add it to the URI?
|
hi,I found a class
org.eclipse.jetty.server.Request,that can get the specified header.
And I wrote these codes to jetty-rewirte.xml, call you tell me how to correct these codes?
<Configure>
<!-- rewrite by header options -->
<Call name="addRule">
<Arg>
<New id="request" class="org.eclipse.jetty.server.Request" />
<New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
<Set name="regex">^/(.*)$</Set>
<Set name="replacement">/<Ref id="request" ><Get name="header"><Arg>Hash</Arg></Get></Ref>/$1</Set>
</New>
</Arg>
</Call>
</Configure>
Thank you!
On Sun, Aug 7, 2011 at 10:07 AM, zhiwei chen
<zhiweik@xxxxxxxxx> wrote:
Thank you, Andrea.
This specified header is sent by nginx, I have many apps, and I want to do this on jetty server, is there another way to do this?
On Sat, Aug 6, 2011 at 7:36 PM, Andrea Sodomaco
<andrea@xxxxxxxxxxx> wrote:
Hi,
why don't you use a fIlter?
Something like
public class HashFilter implements Filter {
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain nextFilter)
throws ServletException, IOException
{
request.setAttribute("caucho.form.character.encoding","UTF-8");
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse)
response;
String hash=req.getHeader("Hash");
if (hash!=null)
request.getRequestDispatcher("/"+hash+req.getRequestURI()).forward(req,
res);
nextFilter.doFilter(request, response);
}
}
in web.xml
<filter>
<filter-name>hashFilter</filter-name>
<filter-class>com.package.HashFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hashFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
bye
Andrea
On 6/08/11 1:14 PM, zhiwei chen wrote:
hi,all.
I give the specified request header to jetty server,how can I
get this specified field and add it to the URI?
For example:
Request header:
GET /hello/test.txt HTTP/1.1
User-Agent: curl/7.21.3
Host: localhost
Accept: */*
Hash:234
As you can see,this request header has a specified field
"Hash",the URI is "/hello/test.txt".
I want to rewrite this URI to "/234/hello/test.txt"(i.e.: the
new URI is : /Hash/oldURI )
Jetty7 hasn't this class,so how should I get the specified
request header field and rewrite the request URI?
Is jetty-rewirte.xml can do this? How to add this rule?
Thank you!
_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users
_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users