您的位置:首页 > 编程语言 > Java开发

Spring security 在项目中的使用第一篇之准备阶段

2010-12-20 15:36 525 查看
首先下载Spring security 所需要的jar 包,减压后 如图所示:



我们在项目中只需要他两个jar包:



以上是在项目中使用Spring security 的准备。

分析权限所需要的类

需要以下三个实体

User(用户) Role(角色) Permissions(权限)

三个实体类有以下的关系:

User -------User_role-------------Role 用户与角色 多对多

Role---------Role_per-------------Permissions 角色与权限 多对多

/**

* 用户实体类

*/

@Entity

@Table(name = "user")

public class User implements Serializable {

private static final long serialVersionUID = -413157271031924368L;

@Id

@GeneratedValue

private int id;

@Basic

private String userName;; // 登录名

private Date createTime;; // 创建时间

private int disabled; // 状态(0可以,1不可以)

private String password;

// 用户和 用户角色 中间表的双向一对多

@ManyToMany(targetEntity = Role.class)

@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))

// @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)

private List<Role> roles;

setters();

setters();

}

/**

* 角色实体类

* @author Administrator

*/

@Entity

@Table(name = "role")

public class Role implements Serializable{

private static final long serialVersionUID = -5593767895288895887L;

@Id

@GeneratedValue

private int ro_id;

private String ro_name;

private int ro_ismanager; //是否为平台角色(0.workshop角色;1.平台角色)

private String ro_description; //角色描述

//角色和中间表的双向一对多

@ManyToMany

@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "role_id"), inverseJoinColumns = @JoinColumn(name = "user_id"))

private List<User> users;

//角色 和 权限 关联表的双向多对多

@ManyToMany(targetEntity = Permissions.class)

@JoinTable(name = "role_per", joinColumns = @JoinColumn(name = "role_id"), inverseJoinColumns = @JoinColumn(name = "per_id"))

private List<Permissions> Permissionss;

getters();

setters();

}

/**

* 权限实体类

* @author Administrator

*/

@Entity

@Table(name = "permissions")

public class Permissions implements Serializable{

private static final long serialVersionUID = -4232835891580210842L;

@Id

@GeneratedValue

private int per_id;

private String per_name; //权限名

private String per_description; //描述

//权限 和 角色权限 关联表的双向多对多

@ManyToMany

@JoinTable(name = "role_per", joinColumns = @JoinColumn(name = "per_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))

private List<Role> roles;

getters();

setters();

}

以下是实体间的映射会生成五张表。



JPA的使用就不再说明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: