2014-10-22 2 views
0

우리는 REST API에 액세스하는 GWT 앱을 가지고 있습니다. REST API는 다른 용도로도 사용되며 JAAS 기본 인증을 사용하여 보호됩니다. GWT 앱은 here과 같이 RestyGWT 디스패처와 필터를 사용하여 인증 : 기본을 헤더에 추가하고 지금까지는 정상적으로 작동합니다.승인이있는 window.open (...)

그러나 Google의 앱을 사용하면 생성 된 다운로드 파일 (pdf 보고서 등) 또는 업로드/다운로드 파일을 사용할 수도 있습니다. 우리는 서블릿을 서버 측에서 업로드 및 다운로드하고 Window.open() 호출을 사용하여 GWT에서 수신합니다. JAAS가 없으면 정상적으로 작동합니다. 이제 API의 해당 부분을 보호하려고합니다. Window.open(...)은 헤더 추가를 허용하지 않으므로 작동하지 않습니다.

이 문제에 대한 대안이 있습니까?

RequestBuilder를 시도했으며 요청한 파일이 포함 된 올바른 응답을 받았습니다. 그러나 파일 다운로드를 시작할 수 없습니다. 이 (AJAX) 응답을 data:... URL으로 인코딩하고 예를 들어 iframe을 사용하여 표시 할 수 있습니까? 그러면 iframe이 파일 다운로드를 시작합니까?

답변

1

나는 정기적으로 링크를 생성하여 다운로드를 처리했습니다. 사용자 세션이 유효한지 확인한 다음 파일을 전달하는 것이 좋을까요? 당신은 열린 윈도우의 문서를 획득하고 그것을 채울 수있는 방법으로

는 :

public static native Document open(String url, String name, String features)/*-{ 
    return $wnd.open(url, name, features).document; 
}-*/; 
+0

은 JAAS의 기본에 모두 REST와 서블릿을 확보하기위한 요구 사항입니다. 따라서 사용자 세션을 사용하지 않을 것입니다. – okism