Как настроить Spring Boot, чтобы он разрешал загрузку файлов Wicket? - PullRequest
0 голосов
/ 27 июня 2019

Я использую Spring Boot и Apache Wicket в веб-приложении.Я должен добавить загрузку файла.

В приведенном ниже коде метод onSubmit компонента Wicket запущен, но "uploads" пуст.

@Override
            protected void onSubmit()
            {
                final List<FileUpload> uploads = fileUploadField.getFileUploads();

                if (uploads != null)
                {
                    for (FileUpload upload : uploads)
                    {
                        // Create a new file
                        File newFile = new File(getUploadFolder(), upload.getClientFileName());

                        // Check new file, delete if it already existed
                        checkFileExists(newFile);
                        try
                        {
                            // Save to new file
                            newFile.createNewFile();
                            upload.writeTo(newFile);

//                          UploadPage.this.info("saved file: " + upload.getClientFileName());
                        }
                        catch (Exception e)
                        {
                            throw new IllegalStateException("Unable to write file", e);
                        }
                    }
                }
            }

Метод настройки Spring

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .authorizeRequests().antMatchers("/**").permitAll()
            .and()
            .logout()
            .permitAll();
        http.headers().frameOptions().disable();

    }

Я создал отдельное приложение, которое содержит Wicket, но не Spring, и тот же код загрузки работает без проблем.

Я пробовал это и не работало.

public class SecurityApplicationInitializer extends AbstractSecurityWebApplicationInitializer {

         @Override
         protected void beforeSpringSecurityFilterChain(ServletContext servletContext) {
          insertFilters(servletContext, new MultipartFilter()); 
         }
    } 

    @Bean(name = "filterMultipartResolver")
     public CommonsMultipartResolver getMultipartResolver() {
          CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
          return multipartResolver;
     }

и когда я добавляюПриведенное ниже предложение для URL-адреса действия компонента Form с помощью javascript, метод Wicket «onSubmit» даже не срабатывает

Spring MVC - загрузка файла заблокирована защитой Spring

Редактировать: КогдаЯ смотрю в сети и вижу, что Spring возвращает 302 запроса POST Wicket на загрузку.

1 Ответ

0 голосов
/ 02 июля 2019

Добавление этого файла application.properties решило проблему.

spring.servlet.multipart.enabled=false
...