zoukankan      html  css  js  c++  java
  • 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的使用就不再说明。

  • 相关阅读:
    clientHeight、offsetHeight、scrollHeight详解
    JavaScript中常见的字符串操作函数及用法
    获取伪元素的属性和改变伪元素的属性
    HTML和CSS实现左侧固定宽度右侧内容可滚动
    gulp常用插件
    gulp入门详细教程
    Javascript 异步实现机制
    JavaScript:彻底理解同步、异步和事件循环(Event Loop)
    chrome调试,打完断点后关于JS的几个控制介绍
    js断点调试心得
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218406.html
Copyright © 2011-2022 走看看