我有一个 Java Web 应用程序,它有非常严格的安全要求。在启动时,它会尝试配置 Web 容器以强制它使用 SSL 会话 ID 来建立 http 会话 ID。如果在此配置中失败,我希望应用程序停止并且不处理请求。我可以System.exit()
像在下面的示例中那样使用,但我想知道是否有一种很好的方法可以在不杀死 JVM 的情况下做到这一点。安全管理员也可能妨碍System.exit()
我正在使用tomcat 7。
public class SessionTrackingModeListener implements ServletContextListener
{
@Override
public void contextInitialized(ServletContextEvent event)
{
try
{
ServletContext context = event.getServletContext();
EnumSet<SessionTrackingMode> modes = EnumSet.of(SessionTrackingMode.SSL);
context.setSessionTrackingModes(modes);
System.out.println("SSL based Session tracking enabled");
} catch (Exception e)
{
System.err.println("Unable to setup SSL based session tracking");
e.printStackTrace();
System.exit(1);
// Question How do I get the container to not start the app without using exit?
}
}
@Override
public void contextDestroyed(ServletContextEvent event)
{
}
}