내 애플리케이션의 특정 페이지에 대한 직접 액세스를 제한하려고합니다. 사용자가 응용 프로그램에서 해당 페이지로 리디렉션되는 경우에만 해당 페이지에 액세스 할 수 있습니다.JSF의 일부 페이지에 직접 액세스하지 못하도록하십시오.
모든 리디렉션은 ExternalContext#redirect(url)
방법을 통해 수행됩니다.
사용자는 뒤로 및 앞으로 단추를 사용할 수 있으며 F5 키를 누르거나 브라우저의 새로 고침 단추를 눌러 페이지를 새로 고칠 수도 있습니다. 내가 원하는 것은 사용자가 저장할 수 없거나 일부 페이지의 URL을 북마크에 추가 할 수 있으며 또한 해당 재조정 된 URL을 복사하여 붙여 넣기하고 브라우저의 주소 표시 줄을 통해 이동할 수 없습니다.
다음의 경우입니다
- 말, 나는 페이지-A 및 페이지-B가있다.
- 페이지 -A에서 Page-B로 리디렉션됩니다.
- 사용자는 Page-A로 돌아갈 수 있으며 브라우저의 뒤로 및 앞으로 버튼을 사용하여 Page-B로 다시 이동할 수 있습니다.
- 사용자는 Page-B를 새로 고칠 수 있으며 페이지 B에 머무를 수 있습니다.
- 사용자는 Page-B의 URL을 복사하고 나중에 새 탭 또는 북마크로 액세스 할 수 없습니다.
실현 가능합니까? 모든 포인터는 나에게 매우 도움이 될 것입니다.
나는 타이머에 대해 생각해 보았다. 그러나 그것이 만료 시간을 어떻게 결정할 수 있습니까? 사용자는 브라우저의 뒤로 및 앞으로 단추를 사용하여 페이지를 새로 고칠 수도 있습니다. 이 작업 전에 타이머가 만료되면 사용자 지정 처리기가 사용자를 다른 페이지로 리디렉션합니다. 그렇지 않니? –
맞지만 요구 사항은 다음과 같습니다. "사용자가 Page-B의 URL을 복사하고 나중에 새 탭 또는 북마크로 액세스 할 수 없습니다." - 따라서이 스펙을 기반으로 분명히 정의하고 나중에 어떻게 든 나중에 구현해야합니다 ... (BTW : 정의하지 않더라도 서버 측에서 항상 HTTP 세션 시간 초과가 있습니다) 원하는 경우에만 자바 스크립트 (browser.location attr) 인 'URL 복사 및 북마크'를 확인하지만 쉽게 해킹 할 수있는 클라이언트 측 코드입니다 ... –