小编Luk*_*uke的帖子

使用Spring 3 @ExceptionHandler和commons FileUpload和SizeLimitExceededException/MaxUploadSizeExceededException

在上传大文件时,我无法捕捉并优雅地处理commons fileupload FileUploadBase.SizeLimitExceededException或spring MaxUploadSizeExceededException.

据我所知,这些异常在数据绑定期间抛出,在实际到达控制器之前,因此导致500并且不调用异常处理程序方法.有没有人遇到过这个,以及正确处理这些异常的最佳方法是什么?

exception-handling file-upload spring-mvc apache-commons-fileupload

18
推荐指数
1
解决办法
9170
查看次数

使用Java配置和Spring Security 3.2的安全方法注释

我在使用方法级别注释设置我的应用程序时遇到了一些问题,@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)

java spring annotations spring-mvc spring-security

12
推荐指数
1
解决办法
2万
查看次数