我有一個網站,輸出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')
}
}
}
問題是,不管是什麼springSecurityService.currentUser
總是空的形式來Excel之類的外部程序,甚至當我點擊鏈接之前但是登錄的時候,如果我複製並粘貼到瀏覽器中的鏈接似乎工作正常。幫幫我!
如何以這種方式安全訪問內容?
如果鏈接位於其他應用程序(如MS Word或Outlook)中,它可以工作嗎? – Ritesh