0

我正在创建一个 API 以允许最终用户更新我的数据库。我会将 API 类放在一个 jar 文件中,并将 jar 提供给用户。

但是我确实希望用户应该被授权。(提供用户名和密码)

一旦用户提供了用户名和密码,我是否必须检查用户是否在用户正在进行的每个 API 调用中登录?(我的意思是,如果用户登录与否,我是否必须检查每个 getter 和 setter)?

他们的方式不同吗?可能正在检查用户登录凭据是否正确?如果不正确,则销毁创建的对象?

编辑

将在 jar 文件中的 API

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

因为我无法阻止用户创建对象我是否必须在我创建的每个函数(getter 和 seter)中检查 isLogin 是否为真?

4

1 回答 1

0

我会给你一个解决方案,可能不是最好的,但可以帮助你。目的是您只能使用工厂创建对象,因此您需要用户并通过。如果您愿意,您可以缓存登录超级工厂的用户,以检查它是否已登录。我给你做了一个简单的图表

使用工厂创建对象,注册用户,如果不存在则抛出异常。在接口中,您声明您希望客户端使用的方法。类的构造函数访问级别是包。因此,您的客户不能仅通过工厂访问它们。

解决方案

您可以实现的另一件事就像Interceptor客户端给您的每个请求一样,传递给一个检查它是否记录用户的类。

于 2013-06-23T15:32:28.873 回答