shiro
用以网站的授权和认证
配置:
一、shiro基本配置文件
所用的entity user和role 实体类
1 @Entity 2 @Table(name="USER_P") 3 @DynamicInsert(value=true) 4 @DynamicUpdate(value=true) 5 public class User extends BaseEntity { 6 @Id 7 @Column(name="USER_ID") 8 @GeneratedValue(generator="system-assigned") 9 @GenericGenerator(name="system-assigned",strategy="assigned") 10 private String id; 11 12 @JsonManagedReference 13 //@ManyToOne(cascade= {CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},fetch=FetchType.EAGER) 14 @ManyToOne 15 @JoinColumn(name="DEPT_ID") 16 private Dept dept; 17 18 @OneToOne(cascade=CascadeType.ALL) 19 //@OneToOne 20 @JoinColumn(name="USER_ID") 21 private Userinfo userinfo; 22 23 @JsonBackReference 24 @ManyToMany(cascade= {CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},fetch=FetchType.EAGER) 25 //@ManyToMany 26 @JoinTable(name="ROLE_USER_P",joinColumns= {@JoinColumn(name="USER_ID",referencedColumnName="USER_ID")}, 27 inverseJoinColumns= {@JoinColumn(name="ROLE_ID",referencedColumnName="ROLE_ID")}) 28 @OrderBy("ORDER_NO") 29 private Set<Role> roles= new HashSet<>(); //用户对应角色 30 31 @Column(name="USER_NAME") 32 private String userName; 33 34 @Column(name="PASSWORD") 35 private String password; 36 37 @Column(name="STATE") 38 private Integer state; 39 40 //getter和setter方法 41 } 42 43 @Entity 44 @Table(name="ROLE_P") 45 @DynamicInsert(true) 46 @DynamicUpdate(true) 47 public class Role extends BaseEntity { 48 @Id 49 @Column(name="ROLE_ID") 50 @GeneratedValue(generator="system-uuid") 51 @GenericGenerator(name="system-uuid",strategy="org.hibernate.id.UUIDGenerator") 52 private String id; //角色ID 53 54 @JsonBackReference 55 @ManyToMany(cascade= {CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},fetch=FetchType.EAGER) 56 @JoinTable(name="ROLE_USER_P",joinColumns= {@JoinColumn(name="ROLE_ID",referencedColumnName="ROLE_ID")}, 57 inverseJoinColumns= {@JoinColumn(name="USER_ID",referencedColumnName="USER_ID")}) 58 private Set<User> users = new HashSet<>(0); //用户对应角色 59 60 @Column(name="NAME") 61 private String name; //角色名称 62 63 @Column(name="REMARK") 64 private String remark; //备注 65 66 @Column(name="ORDER_NO") 67 private Integer orderNo; //排序号 68 69 //getter和setter方法 70 }