簡體   English   中英

認證機制為java游戲客戶端/ mysql數據庫

[英]Authentication mechansim for java game client / mysql db

我需要弄清楚如何最好地驗證從C ++游戲客戶端連接到另一台服務器上的mySQL數據庫的用戶,並且我計划編寫一個java Web服務來完成此任務。

安全性是首要關注的問題,我需要確保流經線路的數據是加密的,因此我將利用SSL(最初我考慮使用ws-security進行消息級加密,但我認為它的開銷太大)。

我真正需要弄清楚的是我應該提供什么樣的身份驗證機制。 這些用戶將提供用戶名和密碼,並將向服務發出Web請求。

我還沒有確定該服務應該是傳統的SOAP Web服務還是RESTful服務。 休息背后的整個想法是使服務器無狀態,並且由於客戶端基本上將與服務建立會話,我在這里看不到使用REST的重點。

說了這么多,我真正需要確定的是如何執行握手以及如何持久保存會話。

是否有任何流行的框架提供API來對mySQL數據庫執行此操作?

客戶端將再次向服務器提供UN / PW,需要解密它們(SSL應該處理它),根據存儲在mysql DB中的帳戶信息對它們進行身份驗證,然后返回某種哈希或類似的東西這樣用戶的會話可以持久存在,或者用戶不再需要登錄才能發出其他請求。

任何人都可以推薦一個框架/一些閱讀材料供我瀏覽一下嗎?

讓事情盡可能簡單。

HTTP已經是無狀態的,並且已經建立了登錄后繼續會話的想法(會話cookie)。 使用這個范例,你不會有任何麻煩。

您還可以獲得非常輕量級和開放的通信協議以及許多優秀的庫,以便輕松地對常見REST有效負載(如JSON或XML)進行序列化/反序列化。

REST還意味着您可以非常輕松地將同一服務器與其他客戶端一起使用。

我來看看oauth:

http://developers.sun.com/identity/reference/techart/restwebservices.html

一個完善的模式是:1。登錄並接收oauth令牌2.使用用戶的內部ID(以及您希望存儲的令牌到期時間等任何其他數據)在db中存儲令牌。 3.將令牌發送到客戶端,客戶端持久存儲令牌4.客戶端為所有將來的請求發送令牌5.服務器從令牌獲取用戶信息

此方法應適用於任何客戶端語言和任何后端數據存儲。

我建議使用REST。 作為授權框架,您可以在JAAS上使用標准容器的jdbc或文件域。 如果登錄/密碼對成功,請將它們存儲在客戶端。 之后,您可以使用每個請求提供的auth憑據執行請求。 我為此使用了澤西客戶端。 對於從/到XML / json XStream庫的[de]序列化“do all dat math”。 祝你今天愉快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM