class DefaultHttpSessionManager implements HttpSessionManager, SessionCookieConfig {

    @Override
    public synchronized HttpSession createSession(HttpServletRequest request) {
        String sessionId = UUID.randomUUID().toString();
        DefaultHttpSession session = new DefaultHttpSession(webApplication, sessionId, true);
        session.setSessionManager(this);
        sessions.put(sessionId, session);

        HttpServletResponse response = (HttpServletResponse) webApplication.getResponse(request);
        Cookie cookie = new Cookie(name, sessionId);

        if (path != null) {
            cookie.setPath(path);
        } else {
            cookie.setPath("".equals(webApplication.getContextPath()) ? "/" : webApplication.getContextPath());
        }

        response.addCookie(cookie);

        sessionListeners.stream().forEach(sessionListener -> sessionListener.sessionCreated(new HttpSessionEvent(session)));

        return session;
    }

    public  DefaultHttpSessionManager();

}