使用Jetty开发期间自动登录

我有通常的设置:一个带有登录屏幕的webapp和一个小型Java类,它设置Jetty来启动应用程序。 在开发过程中,我们都会在每次更改代码后浪费几秒钟来登录,从而强制重启。 (不,JRebel没有帮助,因为它不会再次运行构造函数,因此它可能会遗漏一些更改)。 所以我想知道我是否可以这样修补Jetty设置: 如果我请求
/index.jsp
,而不是去真正的JSP,它应该加载一个servlet,它填写典型开发用户的用户名和密码,登录,然后重定向到应用程序的主JSP。 为了使一切安全,我会将此自动登录代码放入测试路径,因此无法意外部署。 现在的问题是:如何在Java代码中配置Jetty中的URL重定向/重写?出于显而易见的原因,我不想触摸
web.xml
。     
已邀请:
按照示例,我想出了这段代码:
private WebAppContext webapp;

private void configureAutoLogin() {
    ServletHolder holder = webapp.getServletHandler().newServletHolder();
    holder.setName("autologin");
    holder.setClassName( AutoLoginServlet.class.getName() );

    webapp.getServletHandler().addServlet(holder);

    ServletMapping mapping = new ServletMapping();
    mapping.setServletName(holder.getName());
    String[] paths = { "/autologin" };
    mapping.setPathSpecs( paths );

    webapp.getServletHandler().addServletMapping(mapping);
}
为了使用户更简单,我还创建了一个目录
jetty/
,其中包含一个
test.html
,开发人员可以在其中添加指向此类URL的链接。为了确保无法意外部署此测试HTML页面,我将
jetty/
目录添加到
WebAppContext
的基本资源:
    File webAppDir = new File( "src/main/webapp" );
    Resource webAppResource = new FileResource( webAppDir.toURI().toURL() );
    Resource jettyDir = new FileResource( new File( "jetty" ).toURI().toURL() );

    ResourceCollection resources = new ResourceCollection( webAppResource, jettyDir );
    webapp.setBaseResource( resources );
    

要回复问题请先登录注册