如何初始化milton以使用非标准路径



我试图在spring引导应用程序中初始化milton,使其具有路径\localhost@8080webdavDavWWWRoot而不是\localhost@8080DavWWWRoot我的配置:

@Configuration
open class MiltonBeanConfig {
@Bean
open fun someFilterRegistration(): FilterRegistrationBean<Filter> {
val registration: FilterRegistrationBean<Filter> = FilterRegistrationBean()
registration.filter = getMiltonFilter()
registration.setName("MiltonFilter")
registration.addUrlPatterns("/webdav/*")
registration.addInitParameter("resource.factory.class", "io.milton.http.annotated.AnnotationResourceFactory")
registration.addInitParameter("controllerPackagesToScan", "ru.sms.wdsample.webdav.controller")
registration.addInitParameter("milton.configurator", "ru.sms.wdsample.webdav.configuration.MiltonConfig")
registration.order = 1
return registration
}
open fun getMiltonFilter(): Filter {
return MiltonFilter()
}
}

MiltonConfig

class MiltonConfig() : DefaultMiltonConfigurator() {
override fun build() {
builder.securityManager = NullSecurityManager()
builder.contextPath = "/webdav/"
super.build()
}
}

我可以用调试器看到我得到的根和子,但有错误:

2022-02-03 21:24:10.786  INFO 35736 --- [nio-8080-exec-1] io.milton.http.HttpManager               : OPTIONS :: localhost:8080///webdav start
2022-02-03 21:24:22.091  INFO 35736 --- [nio-8080-exec-1] io.milton.http.HttpManager               : OPTIONS :: localhost:8080///webdav finished 11305ms, Status:HTTP/1.1 404 Not Found, Length:null

我犯了什么错?

不知道,也许这不是一个好的解决方案,但它对我有用。

class UrlAdapterImpl : UrlAdapter {
override fun getUrl(request: Request): String {
val s = HttpManager.decodeUrl(request.absolutePath)
return if (s.contains("/webdav")) s.replace("/webdav", "") else s
}
}

最新更新