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的使用就不再说明。
我们在项目中只需要他两个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的使用就不再说明。
相关文章推荐
- Spring security 在项目中的使用第一篇之准备阶段
- Spring security 在项目中的使用第二篇之代码实现阶段
- Spring security 在项目中的使用第二篇之代码实现阶段
- 持续更新-使用 Maven Module 搭建spring boot项目(整合Spring Security、Spring Social、spring OAuth)第一篇
- 第一章开篇,项目经理的准备,第一篇,为什么要有中国式的项目管理 推荐
- PDA项目总结,准备阶段
- UML在项目实施中的使用心得(需求分析阶段)
- iOS 开源项目[我的衣橱]开发阶段3: 第三方类的使用
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第一篇:前期环境准备
- Myeclipse下使用Maven搭建spring boot项目(第一篇)
- 第一章开篇,项目经理的准备,第一篇,为什么要有中国式的项目管理
- 爬虫项目的准备阶段1
- Win7项目分享part1:Windows7准备的3个阶段
- 使用rbenv进行Ruby on Rails 环境搭建@CentOS 7-3-项目其他环境准备
- [茶聊] 项目准备阶段
- Java Web学习(19):阶段项目之使用JSP+JavaBean完成用户登录
- [置顶] Java Web学习(33): 阶段小项目使用MVC模型实现购物车效果
- 准备使用kbengine做项目
- SpringMVC项目中使用 spring security时<async-supported>报错
- libevent项目分析(一) -- 准备阶段