木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺

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

首先下载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的使用就不再说明。

 

 

 

 

 

posted @ 2010-12-20 15:36  C语言程序  阅读(230)  评论(0编辑  收藏  举报
木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺