2016-07-03 3 views
0

응용 프로그램 (백엔드에 보안이있는 Java + Spring 부트), 앞면에 Angularjs를 쓰고 있습니다. 공유 토큰 (보안 목적)으로 백엔드에 파일을 보내야합니다. 백엔드에서 csrf를 사용하도록 설정하고 HTTP 요청을 생성 할 때 앵커에서 인터셉터를 사용하도록했습니다. 그러나 ng-dropzone에서는 작동하지 않습니다. 사용자 정의 업로드 방법 dropzone 및 angularjs

나는 DROPZONE 설정 추가 :

$scope.logoDropzoneConfig = { 
       parallelUploads: 1, 
       maxFileSize: 30, 
       url: '/api/companies/upload/logo', 
      }; 

을하지만 type=org.springframework.security.access.AccessDeniedException, message=Access is denied을 가지고있다.

config에 url 대신 파일을 보내려면 사용자 정의 방법을 쓸 수 있습니까?

+0

당신은/API/회사/업로드/로고에 대한 CSRF 해제 할 수 있습니다 내가 그렇게 헤더를 전달할 수 DROPZONE 구성에서 , 난 인증 토큰 아래와 같이 통과? Dropzone으로 업로드 할 때 봄 보안이 필요합니까? 'http.csrf(). ignoringAntMatchers ("/ api/companies/upload/logo")' – MGR

+0

@MGR 내 응용 프로그램은 안전해야합니다. 어떤 서비스에 대해서도 csrf를 비활성화하지 않으려합니다. 그것은 해결책이 아닙니다. –

+0

예 방금 물었습니다. 우리는 CSRF를 REST Services와 함께 구현하는 것에 대해 이야기 할 수 있으며 제출 양식을 작성하지는 않지만 여기에서 요점은 아닙니다. AngularJS 앱에 CSRF 토큰을 어떻게 구현 했습니까? (메타 태그에서 쿠키에? [+ 헤더]) – MGR

답변

1

오늘 밤이 문제가 해결되었습니다. 그것은

$scope.logoDropzoneConfig = { 
       parallelUploads: 1, 
       maxFileSize: 30, 
       url: '/api/companies/upload/logo', 
       headers: { 
        'Authorization' :AuthServerProvider.getToken() 
       } 
      }; 

간단하지 않다 :

관련 문제