1

I tried to initialize milton in spring-boot app to have the path \\localhost@8080\webdav\DavWWWRoot instead of \\localhost@8080\DavWWWRoot My configuration:

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

I can see with debugger what I get root and child but have the error:

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

What's my mistake?

mihalis
  • 33
  • 6

1 Answers1

0

Don't know, maybe it's not a good solution but it's work for me.

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
    }
}
mihalis
  • 33
  • 6