1

我试图在 spring-boot 应用程序中初始化 milton 以获得路径\\localhost@8080\webdav\DavWWWRoot而不是\\localhost@8080\DavWWWRoot 我的配置:

@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()
    }
}

米尔顿配置

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

我可以用调试器看到我得到了 root 和 child 但有错误:

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

我的错误是什么?

4

1 回答 1

0

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

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
    }
}
于 2022-02-05T09:31:34.590 回答