2015-12-31 119 views
2

我正在開發一個使用spring-hibernate在java中構建rest服務的服務器應用程序,其中此服務將被其他clients.i使用此鏈接http://www.beingjavaguys.com/2014/08/spring-restful-web-services.html服務器應用程序中的會話管理

我這裏的問題是

1>我應該在服務器應用程序保持會話?如果是怎麼樣?

2>我應該在服務器端做任何驗證嗎?

3>要驗證用戶登錄時,我應該使用spring安全性還是僅僅比較數據庫中的用戶名和密碼就足夠了?

4>當用戶在特定時間內沒有與服務器交互時,應該會話超時,是否應該在sserver應用程序或客戶端實現?

我對java和web服務非常陌生,任何建議,鏈接和guidence感謝。

回答

-1

1>我應該在服務器應用程序中維護會話嗎?如果是的話如何?

的Web服務是stateless意味着服務器沒有任何國家對存儲在服務器上的客戶端會話side.You應該管理的客戶端會話,其他明智的你最終會向上處理會話的重負荷在服務器端,我相信你不想那樣做。

2>我應該在服務器端做任何驗證嗎?

如果通過驗證您的意思是數據完整性,我認爲您將不得不這樣做,因爲它有利於數據完整性和您的應用程序。

3>要驗證用戶,而登錄時,我應該使用彈簧安全爲該 或只是比較數據庫中的用戶名和密碼就足夠了?

你都可以做,用彈簧安全是一個不錯的選擇,你將必須配置或建立自己的AuthentificationManager將比較憑據枝條那些存儲在數據庫中

4>當用戶沒有特定的時間與服務器交互 應該是會話超時,應該在sserver 應用程序或客戶端實現嗎?

您可以設置一個會話超時,這應該在客戶端實現。

+0

這裏驗證是指使用模型「@Valid」註釋的,哪些是dataintegrity mean.is它需要 – allDroid

+0

@allDroid數據的完整性,是指通過coherant正確的數據到數據庫,例如,如果你有一個字段那不應該是null,你必須確保它在試圖持久化之前不是null。 –

+0

如果應用程序必須通過互聯網和Intranet使用。有什麼我應該在服務器應用程序部分做這個工作嗎?或者我怎樣才能使我的應用程序只能在Intranet上工作,並且只能在互聯網上工作。 – allDroid

0

1>我應該維護服務器應用程序中的會話嗎?如果是的話如何?

其他Web服務不依賴於客戶端會話,因爲它們是無狀態的,所以不需要考慮會話管理。

2>我應該在服務器端做任何驗證嗎?

什麼樣的驗證?

3>爲了驗證用戶登錄時應該使用spring security還是僅僅比較數據庫中的用戶名和密碼就足夠了?

你可以同時使用,但我認爲基於令牌的認證(基於spring安全性)將是最好的方法。

4>當用戶在特定時間內沒有與服務器交互時,應該會話超時,是否應該在服務器應用程序或客戶端實現?

由於服務器不跟蹤用戶會話,所以應該在客戶端執行超時。

如果您想要一個良好的起點,您可以檢查以下項目。

https://github.com/dhavaln/spring-rest-boilerplate

相關問題