gpt4 book ai didi

java - 您如何为普通用户和管理员配置不同的 maxUploadSize 的 MultipartResolver?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:08 25 4
gpt4 key购买 nike

我可以用 10K(10000 字节)的 maxUploadSize 定义一个 MultipartResolver:

<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10000"/>
</bean

但是,如果管理员需要通过管理界面上传一些超过此限制的大文件,应用需要临时重新配置以允许此操作 - 然后再次重新配置以确保普通用户不会超过此限制

当发生这种情况时,当然,普通用户可能会偷偷进入一个大文件而不会收到警告。

有没有办法将解析器配置为在这两种情况下使用不同的 maxUploadSize

最佳答案

最简单的方法是为管理员而不是普通用户使用不同配置的 bean 实现。最优雅的方式是使用 Spring 3.0 @Configuration bean生成一个 session 范围的 bean 实例(我还在下面添加了一个范围代理,以防你没有在 session 范围的 bean 中使用它;否则你可以只使用像这样的更简单的注释:@Scope(WebApplicationContext.SCOPE_SESSION))。

@Configuration
public class MultipartResolverBuilder {
@Bean @Scope(value = WebApplicationContext.SCOPE_SESSION,
proxyMode = ScopedProxyMode.TARGET_CLASS)
public CommonsMultipartResolver getMultipartResolver() {
CommonsMultipartResolver mr = new CommonsMultipartResolver();
if (user_is_not_admin) {
mr.setMaxUploadSize(10000);
}
return mr;
}
}

当然,您需要添加代码来确定用户是否是管理员,并且您需要添加对扫描基于注解的配置的支持(如果您还没有的话) ; <context:annotation-config/>/<context:component-scan .../> 是很常见的东西)。

关于java - 您如何为普通用户和管理员配置不同的 maxUploadSize 的 MultipartResolver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com