vaadin / framework

Vaadin 6, 7, 8 is a Java framework for modern Java web applications.
http://vaadin.com/
Other
1.78k stars 730 forks source link

getContentDispositionFilename uses encodedFilename in both parameters where decoded one should be used #12591

Open mimkorn opened 1 year ago

mimkorn commented 1 year ago
/**
 * Returns the filename formatted for inclusion in a Content-Disposition
 * header. Includes both a plain version of the name and a UTF-8 version
 *
 * @since 7.4.8
 * @param filename
 *            The filename to include
 * @return A value for inclusion in a Content-Disposition header
 */
public static String getContentDispositionFilename(String filename) {
    String encodedFilename = EncodeUtil.rfc5987Encode(filename);

    return String.format("filename=\"%s\"; filename*=utf-8''%s",
            encodedFilename, encodedFilename);

Observe that you use encodedFilename in both cases instead of using filename in one case and encodedFilename in the other.