Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Fwd: Upgrading from Jetty 7 to 8

The codebases for Jetty 7 and Jetty 8 are for all practical purposes identical.

They only differ by their Servlet API support level.
Jetty 7 = Servlet API 2.5
Jetty 8 = Servlet API 3.0

In fact we make changes on Jetty 7 in our git repository and merge them up to Jetty 8 as our normal development processes.
Since you are using the RewriteHandler and ForwardedSchemeHeaderRule there is a very high degree of confidence that they are identical in both Jetty 7 and Jetty 8.

There really no need for a jetty7to8-1.0.jar as it would literally be a class like this ...

public class Main {
   public static void main(String args[]) {
      System.out.println("Success, your Jetty 7 codebase and webapp will now run in Jetty 8");
   }
}

That's right, it would do nothing, as it doesn't have to do anything.

Just to prove the point that the codebases are the same ...

$ diff -u org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java  org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java
$ diff -u org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java  org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java 

There is no lines of diff(erence) between them (lack of output from diff).
Lets ask diff if they are the same...

$ diff -s org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java  org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java 
Files org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java and org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java are identical
$ diff -s org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java  org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java 
Files org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java and org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java are identical

Yup the same ...
Lets ask git if they are the same ...

$ git diff jetty-7:jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java \
             jetty-8:jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java

$ git diff jetty-7:jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java  \
             jetty-8:jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java

Git also reports no differences.

Lets look another way...

$ sha1sum org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java  org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java
0b24377503452cf9561ccf1be470130ed22de690  org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java
0b24377503452cf9561ccf1be470130ed22de690  org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ForwardedSchemeHeaderRule.java

$ sha1sum org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java  org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java 
969fa2ea43382fd570ea80f89448edd189d235c7  org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java
969fa2ea43382fd570ea80f89448edd189d235c7  org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteHandler.java

They even have the same sha1sum ...

Ok, lets try opening up the scope to all of /jetty-rewrite/ source ...

$ diff -ru org.eclipse.jetty7.project/jetty-rewrite/src/main/java  org.eclipse.jetty8.project/jetty-rewrite/src/main/java
diff -ru org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ProxyRule.java org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ProxyRule.java
--- org.eclipse.jetty7.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ProxyRule.java 2013-03-14 23:33:02.969256449 -0700
+++ org.eclipse.jetty8.project/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ProxyRule.java 2013-03-27 16:41:30.254447995 -0700
@@ -371,7 +371,7 @@
         {
             // TODO could be better than this!
             String hdr = (String)enm.nextElement();
-            String lhdr = hdr.toLowerCase();
+            String lhdr = hdr.toLowerCase(Locale.ENGLISH);
 
             if (_DontProxyHeaders.contains(lhdr))
                 continue;

This is a change to support the Servlet-API 3.0 @Inject model.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=393363
And is unrelated to your core issue.

Did you have ForwardedSchemeHeaderRule working at some point?
If so, which version of jetty?

--
Joakim Erdfelt <joakim@xxxxxxxxxxx>
Developer advice, services and support
from the Jetty & CometD experts


On Fri, Mar 29, 2013 at 11:51 AM, Stephen Halsey <steve@xxxxxxxxxxxx> wrote:
Hi,

I am upgrading from Jetty 7 to 8 and found the following on the:-
which prints:-

Permission error

You do not have permission to do that, for the following reason:

The action you have requested is limited to users in the group user.


Should I join a certain group to get access to this page?  I have become a "Friend of Eclipse" and now am being told:-

You've followed a link to a page that doesn't exist yet.

So I'm guessing its just a page on the Wiki that hasn't been created yet?

If so, are there any tools I can use like the very wonderful jetty6to7-1.0.jar to upgrade from 7 to 8 please?  Specifically I am needing to upgrade the following section in jetty.xml:-

    <!-- =========================================================== -->
    <!-- Configure Rewrite Handler                                   -->
    <!-- =========================================================== -->
    <Set name="handler">
        <New id="Handlers" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
            <Set name="rules">
                <Array type="org.eclipse.jetty.rewrite.handler.Rule">
                    <Item>
                        <New id="forwardedHttps"
                            class="org.eclipse.jetty.rewrite.handler.ForwardedSchemeHeaderRule">

                            <!-- If this header is present, and the specified headerValue matches,
                                 then the specified scheme will be passed on. If the headerValue isn't
                                 specified, then the presence of the header with any value will trigger
                                 the scheme modification.
                            -->
                            <Set name="header">X-Forwarded-Scheme</Set>
                            <Set name="headerValue">https</Set>
                            <Set name="scheme">https</Set>
                        </New>
                    </Item>
                </Array>
            </Set>

and am thinking that I may have to move it into the jetty-rewrite.xml file and also may have to update my pom.xml to download the <artifactId>jetty-rewrite</artifactId> which I didn't have to do before?

thanks a lot


Steve.


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users



Back to the top