在上传大文件时,我无法捕捉并优雅地处理commons fileupload FileUploadBase.SizeLimitExceededException或spring MaxUploadSizeExceededException.
据我所知,这些异常在数据绑定期间抛出,在实际到达控制器之前,因此导致500并且不调用异常处理程序方法.有没有人遇到过这个,以及正确处理这些异常的最佳方法是什么?
exception-handling file-upload spring-mvc apache-commons-fileupload
我在使用方法级别注释设置我的应用程序时遇到了一些问题,@EnableGlobalMethodSecurity我正在使用Servlet 3.0样式初始化
public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
public SecurityWebApplicationInitializer() {
super(MultiSecurityConfig.class);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了两种不同的方法来初始化AuthenticationManager两者都有自己的问题.请注意,在成功启动服务器时不使用@EnableGlobalMethodSecurity结果,并且所有表单安全性都按预期执行.当我在控制器上添加@EnableGlobalMethodSecurity和@PreAuthorize("hasRole('ROLE_USER')")注释时,我的问题出现了.
我试图独立设置基于表单和基于api的安全性.基于注释的方法仅需要用于api安全性.
一种配置如下.
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled=true)
public class MultiSecurityConfig {
@Configuration
@Order(1)
public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/api/**").httpBasic();
}
protected void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("password").roles("USER").and()
.withUser("admin").password("password").roles("USER", "ADMIN");
}
}
@Configuration
public static class FormWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
public void configure(WebSecurity web) throws …Run Code Online (Sandbox Code Playgroud)