Skip to content

Commit

Permalink
[BACKLOG-4131] - Upgrading jetty to support servlet 3 spec
Browse files Browse the repository at this point in the history
  • Loading branch information
rmansoor committed Jul 4, 2015
1 parent c714930 commit 41a7e9e
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 36 deletions.
2 changes: 1 addition & 1 deletion core/ivy.xml
Expand Up @@ -33,7 +33,7 @@

<dependency org="org.apache.commons" name="commons-compress" rev="1.4" transitive="false"/>
<dependency org="dom4j" name="dom4j" rev="1.6.1" transitive="false"/>
<dependency org="org.mortbay.jetty" name="jetty" rev="6.1.21" transitive="false"/>
<dependency org="org.eclipse.jetty" name="jetty-util" rev="8.1.15.v20140411" transitive="false"/>
<dependency org="jug-lgpl" name="jug-lgpl" rev="2.0.0" transitive="false"/>
<dependency org="com.jcraft" name="jsch" rev="0.1.46" transitive="false"/>
<dependency org="ognl" name="ognl" rev="2.6.9" transitive="false"/>
Expand Down
2 changes: 1 addition & 1 deletion core/src/org/pentaho/di/core/encryption/Encr.java
Expand Up @@ -24,7 +24,7 @@

import java.math.BigInteger;

import org.mortbay.jetty.security.Password;
import org.eclipse.jetty.util.security.Password;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.KettleClientEnvironment;
import org.pentaho.di.core.exception.KettleException;
Expand Down
13 changes: 9 additions & 4 deletions engine/ivy.xml
Expand Up @@ -59,8 +59,6 @@
<dependency org="com.sun.jersey" name="jersey-bundle" rev="1.16" transitive="false"/>
<dependency org="com.sun.jersey" name="jersey-client" rev="1.16" transitive="false"/>
<dependency org="com.sun.jersey" name="jersey-core" rev="1.16" transitive="false"/>
<dependency org="org.mortbay.jetty" name="jetty-plus" rev="6.1.21" transitive="false"/>
<dependency org="org.mortbay.jetty" name="jetty-util" rev="6.1.21" transitive="false"/>
<dependency org="jexcelapi" name="jxl" rev="2.6.12" transitive="false"/>
<dependency org="ldapjdk" name="ldapjdk" rev="20000524" transitive="false"/>
<dependency org="monetdb" name="monetdb-jdbc" rev="2.8" transitive="false"/>
Expand Down Expand Up @@ -104,8 +102,13 @@
<dependency org="org.mnode.mstor" name="mstor" rev="0.9.13" transitive="false"/>
<dependency org="org.xerial.snappy" name="snappy-java" rev="1.1.0" transitive="true"/>
<dependency org="commons-cli" name="commons-cli" rev="1.2" transitive="false"/>


<dependency org="org.eclipse.jetty" name="jetty-plus" rev="8.1.15.v20140411" transitive="false" conf="default->default"/>
<dependency org="org.eclipse.jetty" name="jetty-server" rev="8.1.15.v20140411" conf="default->default">
<exclude org="org.eclipse.jetty.orbit" name="javax.servlet-3.0.0.v201112011016"/>
</dependency>
<dependency org="org.eclipse.jetty" name="jetty-security" rev="8.1.15.v20140411" transitive="false" conf="default->default"/>
<dependency org="org.eclipse.jetty" name="jetty-servlet" rev="8.1.15.v20140411" transitive="false" conf="default->default"/>
<dependency org="org.eclipse.jetty" name="jetty-xml" rev="8.1.15.v20140411" transitive="false" conf="default->default"/>
<!-- OLAP4J is bringing in an older version of beanutils-core than is needed -->
<dependency org="commons-beanutils" name="commons-beanutils-core" rev="1.8.0" transitive="false"/>

Expand All @@ -116,5 +119,7 @@
<dependency org="junit" name="junit" rev="4.7" conf="test->default" transitive="false"/>
<dependency org="org.mockito" name="mockito-all" rev="1.9.5" conf="test->default" transitive="false" />

<exclude org="org.eclipse.jetty.orbit" module="javax.servlet"/>

</dependencies>
</ivy-module>
60 changes: 32 additions & 28 deletions engine/src/org/pentaho/di/www/WebServer.java
Expand Up @@ -22,20 +22,22 @@

package org.pentaho.di.www;

import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.bio.SocketConnector;
import org.mortbay.jetty.handler.ContextHandlerCollection;
import org.mortbay.jetty.handler.ResourceHandler;
import org.mortbay.jetty.plus.jaas.JAASUserRealm;
import org.mortbay.jetty.security.Constraint;
import org.mortbay.jetty.security.ConstraintMapping;
import org.mortbay.jetty.security.HashUserRealm;
import org.mortbay.jetty.security.SecurityHandler;
import org.mortbay.jetty.security.SslSocketConnector;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.bio.SocketConnector;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.plus.jaas.JAASLoginService;
import org.eclipse.jetty.util.security.Constraint;
import org.eclipse.jetty.util.security.Password;
import org.eclipse.jetty.security.ConstraintMapping;
import org.eclipse.jetty.security.ConstraintSecurityHandler;
import org.eclipse.jetty.security.HashLoginService;
import org.eclipse.jetty.server.ssl.SslSocketConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.pentaho.di.cluster.SlaveServer;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.KettleEnvironment;
Expand Down Expand Up @@ -154,19 +156,19 @@ public void startServer() throws Exception {

// Set up the security handler, optionally with JAAS
//
SecurityHandler securityHandler = new SecurityHandler();

ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler();
if ( System.getProperty( "loginmodulename" ) != null
&& System.getProperty( "java.security.auth.login.config" ) != null ) {
JAASUserRealm jaasRealm = new JAASUserRealm( "Kettle" );
jaasRealm.setLoginModuleName( System.getProperty( "loginmodulename" ) );
securityHandler.setUserRealm( jaasRealm );
JAASLoginService jaasLoginService = new JAASLoginService( "Kettle" );
jaasLoginService.setLoginModuleName( System.getProperty( "loginmodulename" ) );
securityHandler.setLoginService( jaasLoginService );
} else {
HashUserRealm hashUserRealm;
HashLoginService hashLoginService;
SlaveServer slaveServer = transformationMap.getSlaveServerConfig().getSlaveServer();
if ( !Const.isEmpty( slaveServer.getPassword() ) ) {
hashUserRealm = new HashUserRealm( "Kettle" );
hashUserRealm.put( slaveServer.getUsername(), slaveServer.getPassword() );
hashLoginService = new HashLoginService( "Kettle" );
hashLoginService.putUser( slaveServer.getUsername(), new Password(slaveServer.getPassword()), new String[] {});
} else {
// See if there is a kettle.pwd file in the KETTLE_HOME directory:
if ( Const.isEmpty( passwordFile ) ) {
Expand All @@ -177,9 +179,9 @@ public void startServer() throws Exception {
passwordFile = Const.getKettleLocalCartePasswordFile();
}
}
hashUserRealm = new HashUserRealm( "Kettle", passwordFile );
hashLoginService = new HashLoginService( "Kettle", passwordFile );
}
securityHandler.setUserRealm( hashUserRealm );
securityHandler.setLoginService( hashLoginService );
}

securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
Expand All @@ -190,7 +192,7 @@ public void startServer() throws Exception {

// Root
//
Context root = new Context( contexts, GetRootServlet.CONTEXT_PATH, Context.SESSIONS );
ServletContextHandler root = new ServletContextHandler( contexts, GetRootServlet.CONTEXT_PATH, ServletContextHandler.SESSIONS );
GetRootServlet rootServlet = new GetRootServlet();
rootServlet.setJettyMode( true );
root.addServlet( new ServletHolder( rootServlet ), "/*" );
Expand All @@ -203,7 +205,7 @@ public void startServer() throws Exception {
servlet.setup( transformationMap, jobMap, socketRepository, detections );
servlet.setJettyMode( true );

Context servletContext = new Context( contexts, servlet.getContextPath(), Context.SESSIONS );
ServletContextHandler servletContext = new ServletContextHandler( contexts, servlet.getContextPath(), ServletContextHandler.SESSIONS );
ServletHolder servletHolder = new ServletHolder( (Servlet) servlet );
servletContext.addServlet( servletHolder, "/*" );
}
Expand All @@ -227,9 +229,11 @@ public void startServer() throws Exception {
//
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setResourceBase( "temp" );

// add all handlers/contexts to server
server.setHandlers( new Handler[] { securityHandler, contexts, resourceHandler, } );

HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { securityHandler, contexts, resourceHandler });
server.setHandler(handlers);

// Start execution
createListeners();
Expand Down
4 changes: 2 additions & 2 deletions engine/test-src/org/pentaho/di/www/WebServerTest.java
Expand Up @@ -29,8 +29,8 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.bio.SocketConnector;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.bio.SocketConnector;
import org.pentaho.di.cluster.SlaveServer;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.logging.LogChannelInterface;
Expand Down

0 comments on commit 41a7e9e

Please sign in to comment.