2012-12-05 6 views
0

다른 서버의 웹 응용 프로그램으로 리디렉션하는 java 서블릿이 있습니다.response.sendRedirect의 url에서 쿼리 문자열 매개 변수를 숨기기

쿼리 문자열 매개 변수를 숨길 수있는 방법이 있는지 궁금해서 주소 표시 줄의 클라이언트에 표시되지 않습니다.

response.sendRedirect("http://www.mywebapp.com/login.html?parameter1=value1&parameter2=value2"); 

강제로 sendRedirect를 POST로 페이지에 연결하고 쿼리 문자열을 숨길 수 있습니까?

편집 : 사용 사례.

  • 사용자는 http://www.mywebapp.com
  • 에 그들은 자동으로 내 서블릿 필터
  • 가 다시 SAML 응답을 접수에 일단 서블릿은 SAML
  • 사용하여 ID 공급자에 SSO를 처리로 리디렉션됩니다 간다, 나는 지금 리디렉션 인증 된 사용자가 mywebapp.com으로 돌아 가기
  • 일부 매개 변수를 webapp에 다시 전달하려고합니다. SAML 응답의 매개 변수 하지만 사용자가 URL에서 볼 수 없도록하고 싶습니다.

분명히 sendRedirect()는 내가 원하는 것이 아닙니다. 이것을 처리하는 가장 좋은 방법은 무엇입니까?

답변

0

당신은 할 수

로드 후 POST 양식을 자동으로 보내는 HTML 페이지를 반환하는 경우가 있습니다. 사용자는 서블릿 (HttpConnection)에서 다른 서버에 연결하여 반환 할 데이터를 복사해야합니다. JS를 허용하려면

1

아니요,이 시나리오에서는 POST를 사용할 수 없습니다. sendRedirect()를 호출 할 때이 클라이언트로 다시 보내는 것입니다 :

HTTP/1.1 302 Found 
Location: http://www.mywebapp.com/login.html?parameter1=value1&parameter2=value2 

브라우저가이를 해석하고 해당 위치로 사용자를 가리 킵니다.

일부 웹 사이트에서 사용자에게 자동으로 로그인하려는 내용이 나옵니다 (어쩌면 login.html 이름과 두 개의 매개 변수). 이런 식으로하지 마십시오. 사용자 이름/암호를 보내십시오. (GET 매개 변수와 POST 내에서 모두 사용) 정말 안전하지 않습니다.

은 사용 사례에 대해 많이 알고하지 않으면 아마, 서블릿에서 http://www.mywebapp.com/login.html 전화 응답을 분석하고 그래서 그는 정말 자신의 브라우저에서 mywebapp을 볼 수 없을 것이다 (사용자에게 반환하는 가장 좋은 솔루션입니다.

+0

응답 해 주셔서 감사합니다. 보다 구체적인 사용 사례로 초기 게시물을 편집했습니다. 명확하지 않은 것에 대해 유감스럽게 생각합니다. – user1873196

0

서버 쪽에서 요청을 전달한 다음 다른 쪽 끝으로 리디렉션 할 수 있습니다.

관련 문제