我看到很多例子在会话bean方法中返回或传递实体对象。但是会话bean的远程接口的概念让我认为这是不好的做法,因为实体可能拥有私有数据。对会话bean进行远程调用的客户端不能访问所有数据。我只是感到困惑?如果没有,我该怎么办?我应该创建阴影实体公共属性的类吗?
我们假设我有一个用户实体类如下:
@Entity
public class User implements Serializable {
private Integer id;
private String username;
private String email;
private String password;
...
}
对于使用通过会话bean访问此实体的java客户端的访问者,我只想要 id 和 用户名 < / strong>对他们可见。经过身份验证的用户应该能够访问期望 密码 属性的所有属性。拥有像这样的会话bean是不安全的:
@Stateless
public class UserManager {
public User getUserById(Integer id) {
...
}
public List<User> findUsers(String searchKey) {
...
}
}
如何遇到这样的安全问题?