2017-02-23 73 views
0

我試圖讓Spring Security允​​許用戶從服務器上下載一些靜態文件,但是,我可以看到它在JS,CSS和圖像文件。使彈簧安全,讓用戶下載擴展名爲.pkg和.msi的文件

當我嘗試從同一個文件夾中獲取文件.msi或.pkg時,spring security顯示我到404頁面。

有人有一個想法,我該如何防止這個或我在這裏失蹤的配置?

我已經覆蓋了配置方法如下,但它不適合的.msi和.pgk文件

@Override 
    public void configure(WebSecurity web) throws Exception { 
    web.ignoring().antMatchers("/resources/**"); 
    web.ignoring().antMatchers("/resources/**.msi"); 
    web.ignoring().antMatchers("/resources/**.pkg"); 
    } 

UPDATE工作

我試圖訪問https://dev.server.com/app/resources/dummy/installers/XYZ.msi,當我訪問以下https://dev.server.com/app/resources/dummy/css/main.css我沒有任何問題。

對我來說,它可能與SimpleUrlHandlerMapping有關,我不知道如何爲.msi或.pkg文件添加映射,因爲我看到'resources'下的所有文件都是公開的,但它必須像js,css和圖像。

這是一個日誌應用程序啓動時:

2017-02-23 17:44:37.178 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.js] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2017-02-23 17:44:37.178 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.css] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2017-02-23 17:44:37.179 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.png] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2017-02-23 17:44:37.179 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2017-02-23 17:44:37.180 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.gif] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2017-02-23 17:44:37.180 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.jpg] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2017-02-23 17:44:37.181 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.ttf] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2017-02-23 17:44:37.181 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.woff] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2017-02-23 17:44:37.182 INFO 10948 --- [localhost-startStop-1] SimpleUrlHandlerMapping(registerHandler:354) : Mapped URL path [/resources/**/*.woff2] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 

回答

0

將多種解決方案之後,我發現我需要添加擴展覆蓋「addResourceHandler」,檢查以下

@Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/resources/**/*.js", "/resources/**/*.css", "/resources/**/*.png", 
       "/resources/**/*.ico", "/resources/**/*.gif", "/resources/**/*.jpg", "/resources/**/*.ttf", 
       "/resources/**/*.woff", "/resources/**/*.woff2", "/resources/**/*.msi", "/resources/**/*.pkg").addResourceLocations("/resources/"); 
    } 
方法