2012-12-24 6 views
5

Przesyłam obrazy z folderu poza aplikacją internetową. Zapisałem obrazy wewnątrz C: \ source \ Pictures. I skonfigurowany ten zasób jako zasób w pliku statycznego kontekstu serwletu sprężyny:Jak zabezpieczyć dostęp do zasobów statycznych na wiosnę

<resources location="file:///C:/source/Pictures/" mapping="/img_resources/**"/> 

wyświetlać obrazy zapisane w tym folderze używając

<img src="<spring:url value='/img_resources/guinnes_choc_cake.jpg/'/>"></img> 

to działa dobrze dla mnie. Mam jednak obawy związane z bezpieczeństwem. Nie chciałbym udostępniać publicznie katalogu na moim serwerze. 1

Czy istnieje sposób na zbudowanie zabezpieczeń wokół tego folderu na wiosnę?

+1

Może powinieneś zaakceptować odpowiedzi na poprzednie pytania? – micha

+0

@micha dziękuję za przypomnienie mi;) – zfranciscus

+0

"zbuduj zabezpieczenia wokół tego folderu" - jakiego rodzaju "bezpieczeństwo" miałeś na myśli? Co jest dozwolone, a co nie? –

Odpowiedz

7

Jeśli używasz Wiosna Zabezpieczenia można dodać coś takiego do pliku (ów) kontekstowego Wiosna:

<sec:intercept-url pattern="/img_resources/**" access="isAuthenticated()" /> 
+0

który wygląda świetnie. Czy oznacza to jednak, że tylko użytkownicy, którzy zostali uwierzytelnieni, mogą wyświetlać obraz? Jeśli tak, to mogę skończyć z witryną bez obrazów. Nadal chciałbym, aby ludzie oglądali obrazy. – zfranciscus

+2

Właściwie isAuthenticated() jest jednym z dostępnych wyrażeń, najwyraźniej w twoim przypadku musiałbyś użyć "permitAll". Tutaj znajdziesz wszystkie wyrażenia obsługiwane przez Spring Security: [Kontrola dostępu na podstawie wyrażeń] (http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html). – izilotti

2

Nie ma szczególnego powodu, aby ograniczyć dostęp do zasobów statycznych.

Biorąc pod uwagę, że struktura katalogów jest dobrze zdefiniowana, a porządek plików jest semantyczny (tzn. Katalog img_resources będzie zawierał tylko obrazy), należy zezwolić na dostęp do takich zasobów, a nawet całkowicie ominąć filtry, aby uniknąć narzutu podczas przechodzenia przez łańcuch filtrów np:

<sec:intercept-url pattern="/img_resources" filters="none" /> 

z Spring Security tutorial:

Chcemy wolą nie mieć zasobów statycznych zrealizowane przez Wiosna Filtry bezpieczeństwa w ogóle. Aby to osiągnąć, możesz dodać dodatkowy blok, który dotyczy tylko określonego wzorca. To musi przyjść przed istniejącym blokiem, ponieważ ma zastosowanie do określonego wzorca. Jeśli nie podano atrybutu wzorca , blok odnosi się do dowolnego żądania.

Powiązane problemy