private String calculatePath(HttpServletRequest request) {
        String path = StringUtils.clean(getPath());
        if (!StringUtils.hasText(path)) {
            path = StringUtils.clean(request.getContextPath());
        }

        //fix for http://issues.apache.org/jira/browse/SHIRO-9:
        if (path == null) {
            path = ROOT_PATH;
        }
        LOGGER.trace("calculated path: {}", path);
        return path;
    }
Returns the Cookie's calculated path setting.  If the {@link javax.servlet.http.Cookie#getPath() path} is {@code null},
then the {@code request}'s {@link javax.servlet.http.HttpServletRequest#getContextPath() context path}
will be returned. If getContextPath() is the empty string or null then the ROOT_PATH constant is returned.

@param request the incoming HttpServletRequest
@return the path to be used as the path when the cookie is created or removed
web/src/main/java/org/apache/shiro/web/servlet/SimpleCookie.java