用于限制对方法的访问的唯一ID

时间:2016-08-31 10:19:56

标签: java uuid access-modifiers

我有一个对象,我想限制对其某些方法的访问,以便只有该对象的创建者才能访问它们:

class RestrictedObject {

    private final UUID id;

    public RestrictedObject(UUID id) {
        this.id = id;
    }

    public boolean restrictedMethod(UUID anId) {
        if (anId.equals(this.id)) {
            //do stuff
            return true;
        } else {
            return false;
        }
    }
}

Object的创建者会这样做:

UUID id = UUID.randomUUID();
RestrictedObject o = new RestrictedObject(id);
o.restrictedMethod(id);

这是好的做法还是一个糟糕的想法?

1 个答案:

答案 0 :(得分:2)

尝试在用户可以执行任意Java代码的系统中强制执行访问控制是一个糟糕的主意 它基本上是Java applet背后的理念,它一再被证明很难做到正确。
您需要确保有权访问该对象的用户不能使用反射等技巧来读取UUID字段 我会质疑你实际上试图解决的问题,并找到一种更好的方法来沙盒用户。