目標:提供一個介面給第三方服務使用,但因為第三方服務沒有使用者賬號這東西,所以需要進行安全訪問控制(Java實現)
例如:http://XXXXX?nonce=XXXX?×tamp=XXXX&signature=XXXX (請求引數在POST裡面)
步驟:
1.在filter中獲取引數,驗證是第三方服務呼叫
獲取nonce、signature、timestamp、請求引數、四個引數,如果有即是第三方服務在呼叫介面,沒有則將請求轉發給下一個filter
2.檢查請求的時效性
根據上面拿到的時間戳,判斷請求是否過期
3.獲取token
拿到對應服務的token
4.進行簽名
1.將token、timestamp、nonce進行字典排序,作為簽名的secret_key
2.將請求引數作為簽名的內容,然後選擇簽名的方法
3.生成簽名
5.驗證簽名
將生成的簽名與第一個步驟獲取的signature比較,相同即是合法操作
6.設定所信任的上下文
根據請求的資料,獲取裡面能作為設定憑證的引數,將此次請求設定為受信任的請求。