我已经为我的 web 项目实现了一些页面。但是,现在我想添加安全性。
我将有几个角色,如管理员、用户、其他,有些页面只能由管理员访问,有些页面可供用户访问等等。
如果它有趣,我使用 Hibernate 作为数据库。我计划将角色和用户存储在数据库中。
你能帮我告诉在我的 web 项目中实现安全性的可扩展解决方案的最佳实践(如果有的话)吗?链接,书籍或一个很好的例子,非常感谢=)
此致
我正在使用Hibernate.它很棒.但是,假设我有一个对应于数据库表的类,只有getter和setter以及toString,相同的方法.现在我想添加一些帮助目的的方法,例如,假设我想使用一些添加的描述文本获得创建日期,如下所示.
public class Client {
private long id;
private Calendar creationDate;
protected String password;
public long getId() {
return id;
}
@SuppressWarnings("unused")
private void setId(long id) {
this.id = id;
}
public Calendar getCreationDate() {
return creationDate;
}
public void setCreationDate(Calendar creationDate) {
this.creationDate = creationDate;
}
..
.. some other getters and setters that corresponding to SQL columns
//Here I would like to have some help methods. Is it recommended to put it here?
public String getCreationDateInSecs() {
return …Run Code Online (Sandbox Code Playgroud) 我按照以下课程:
@Entity
public class Car {
@Id
@GeneratedValue
private Long id;
@NotNull
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "OWNER_ID")
private Owner owner;
@NotNull()
@Column(nullable = false)
private String make;
@NotNull()
@Column(nullable = true)
private String model;
@Column(nullable = false)
private String gears;
// More fields
Run Code Online (Sandbox Code Playgroud)
假设我正在尝试对象和一个字段,例如make字段,该字段为null,这是不应该的.抛出以下异常:
WARNING: EJB5184:A system exception occurred during an invocation on EJB CarEJB, method: public se.while_se.domain.Car se.while_se.business.CarEJB.createCar(se.while_se.domain.Car)
Sep 09, 2012 12:37:37 PM com.sun.ejb.containers.BaseContainer postInvoke
WARNING:
javax.ejb.EJBException
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5215)
at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5113)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4901)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2045)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1994)
at …Run Code Online (Sandbox Code Playgroud) 由于我没有任何很好的数学技能,我问你是否有任何算法我应该用于一个可能在将来改变的课程.
考虑以下场景:
"角色"类包含以下字段:
private boolean admin;
private boolean printer;
Run Code Online (Sandbox Code Playgroud)
几个星期后,我决定添加一个角色"客人":
private boolean admin;
private boolean printer;
private boolean guest;
Run Code Online (Sandbox Code Playgroud)
几周后我决定删除角色"打印机";
private boolean admin;
private boolean guest;
Run Code Online (Sandbox Code Playgroud)
由于我将在数据库中保留哈希码,因此我必须100%确定此类的所有版本都生成唯一的哈希码.
也许这不是问题,我一直使用Eclispe IDE源代码生成器中提供的那个.
你能告诉我,如果我对Eclipse IDE(Indigo)Java版本> = 6方法安全,或者给我一些关于这个主题的其他建议.我相信这是一件很平常的事情.
提前致谢