package simple_server; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.eclipse.jetty.security.ConstraintMapping; import org.eclipse.jetty.security.ConstraintSecurityHandler; import org.eclipse.jetty.security.HashLoginService; import org.eclipse.jetty.security.authentication.FormAuthenticator; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.util.security.Constraint; import org.eclipse.jetty.util.security.Password; import codeine.AbstractCodeineBootstrap; import com.google.common.collect.Lists; import com.google.inject.Module; public class SimpleServerBootstrap extends AbstractCodeineBootstrap { public static void main(String[] args) throws Exception { Server server = new Server(8080); ServletContextHandler context = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS | ServletContextHandler.SECURITY); context.addServlet(new ServletHolder(new DefaultServlet() { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("hello " + request.getUserPrincipal().getName()); } }), "/*"); context.addServlet(new ServletHolder(new LoginServlet2()), "/login"); Constraint constraint = new Constraint(); constraint.setName(Constraint.__FORM_AUTH); constraint.setRoles(new String[] { "user", "admin", "moderator" }); constraint.setAuthenticate(true); ConstraintMapping constraintMapping = new ConstraintMapping(); constraintMapping.setConstraint(constraint); constraintMapping.setPathSpec("/*"); ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler(); securityHandler.addConstraintMapping(constraintMapping); HashLoginService loginService = new HashLoginService(); loginService.putUser("oshai", new Password("oshai"), new String[] { "user" }); securityHandler.setLoginService(loginService); FormAuthenticator authenticator = new FormAuthenticator("/login", "/login", false); securityHandler.setAuthenticator(authenticator); context.setSecurityHandler(securityHandler); server.start(); server.join(); // boot(Component.SIMPLE, SimpleServerBootstrap.class); } @Override protected List<Module> getGuiceModules() { return Lists.<Module> newArrayList(new SimpleServletModule()); } @Override public int getHttpPort() { return 8080; } @Override protected void execute() throws Exception { } }