보안 콘텐츠로 하이퍼 링크가있는 Excel 보고서를 출력하는 웹 사이트가 있습니다. 같을 것이다 링크 중 하나 ...외부 링크에서 사용자가 유효하지 않습니다.
http://www.[site].com/externalLinkDigester?externalSession=[SHA Encrypted Text]
쿼리 문자열 인수 (externalSession)는 24 시간 동안 만 유효하며에만 보고서를 작성한 사용자가 액세스 할 수있는 고유 한 영숫자 문자열입니다. 내 컨트롤러는 문제는
class ExternalLinkDigester{
def springSecurityService;
def index = {
def currentUser = springSecurityService?.currentUser
if (!currentUser){
redirect(controller:'login')
}
def request = ExternalSession.findByName(params.externalSession);
if (request.isExpired(){
//show expired content page
}
if (sameUser(currentUser, request.user){
//show content
}else{
redirect(controller:'login')
}
}
}
... 이런 식으로 뭔가를 보이는 형태에게 내가 그러나 링크를 클릭하기 전에 로그인 한 경우에도 Excel과 같은 외부 프로그램을 오는 때 springSecurityService.currentUser
이 경우, 항상 null이 무엇인지에 상관없이 링크를 복사하여 브라우저에 붙여 넣으면 제대로 작동하는 것 같습니다. 도움!
어떻게 이런 방식으로 안전하게 콘텐츠에 액세스 할 수 있습니까?
MS Word 나 Outlook과 같은 다른 앱에 링크가 있다면 제대로 작동합니까? – Ritesh