2013-06-22 56 views
0

我正在創建一個API以允許最終用戶更新我的數據庫。 我會將API類放入一個jar文件中,並將jar提供給用戶。Java Api登錄問題

不過,我想用戶應該被授權。一旦用戶提供的用戶名和密碼(提供用戶名和密碼)

我一定要檢查,如果用戶在每個API調用用戶登錄正在製作?(我的意思是如果用戶登錄或不登錄,我是否必須檢查每個getter和setter)?

是他們不同的方式?可能會檢查用戶登錄憑據是否正確?如果不然,則銷燬創建的對象?

編輯

API,這將是在jar文件

import package org.atul.module.registration; 

public class HelloWorld(){ 

    private bool isLogin=false; 
    private String userName="user"; 
    private String Password="password"; 

    public HelloWorld(String userName,String password){ 
     isLogin = checkAuthentication(userName,password); //will make true if creadential are correct 
    } 

    public String getInformation(){ 
      //return Information from database 

} 

//other getters and setters 

正如我不能從創建對象停止用戶是否必須檢查isLogin是真正在每一個函數(getter和seter)我做?

+0

mm我需要更多才能給出正確的答案,但您可以返回一個代理,您可以使所有類都最終並且無需公共訪問,只公開界面,並且創建一個工廠來創建該類,並且在那裏您傳遞用戶並通過..所以你不必檢查用戶,並通過永遠不會因爲你在工廠創建對象時做的事情......但這是模糊的,因爲我不知道你的應用 – nachokk

+0

「,並建立一個工廠來創建這些類,在那裏你傳遞用戶,並通過..所以你不必檢查用戶,並通過永遠不會導致你在工廠中創建對象時。你能說說它給像我這樣的新手嗎? – Atul

+0

我需要知道你的應用程序,如果你的客戶端代碼只用工廠創建實例,例如Factory.getSomeObject(「keyForCreation」,user,pass),並且在你的應用程序中沒有構造函數能見度公開...所以沒有機會使用沒有用戶和密碼的對象......如果你認爲這可以幫助你我做出答案 – nachokk

回答

0

我會給你一個解決方案,可能不是最好的,但可以幫助你。目的是你只能用工廠創建對象,所以你要求用戶並通過。如果你想要,你可以創建一個超級用戶登錄的緩存來檢查它是否被記錄。我給你做了一個簡圖

用工廠創建對象,註冊用戶,拋出一個異常如果不存在pass和user。 在接口中聲明您希望客戶端使用的方法。 類的構造函數訪問級別是包。所以你的客戶不能只通過工廠訪問它們。

solution

另一件事,你是否可以implements就像是一個Interceptor每個請求的客戶給你,傳遞給檢查,如果是登錄的用戶的一類。