【问题标题】:Creating beans for spring-securty为spring-security创建bean
【发布时间】:2017-04-17 07:59:41
【问题描述】:

在这里,我想为 Spring 安全性创建 bean,据我所知,我必须在 Role 类的 List 中创建 User 类,我需要创建 List。这是正确的方法还是任何改变。用你的专业经验给我建议。 提前致谢。

【问题讨论】:

  • 你知道有一个documentation,不是吗?
  • @RC。我不知道那些文件,因为我比较新。

标签: java spring-security


【解决方案1】:

例如 User-Role-Privilege 实体:

  @Entity
  public class CmsAccount {
            @Id
            @GeneratedValue
            private Long id;
            @Column(nullable = false, unique = true)
            private String userId;
            @Column(nullable = false)
            private String password;
            private String fullName;
            private String countryCode;
            private String siteCode;
            @ManyToMany(fetch = FetchType.EAGER)
            @JoinTable(
                    name = "cmsuser_roles",
                    joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
                    inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
            private Collection<Role> roles = new ArrayList<>();
            @NotNull
            private Boolean suspended = false;    
  }





 @Entity
  public class Role {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;

        @Column(unique = true)
        private String name;

        @ManyToMany(mappedBy = "roles")
        private Collection<CustomerAccount> customerAccounts;

        @ManyToMany(fetch = FetchType.EAGER)
        @JoinTable(
                name = "roles_privileges",
                joinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"),
                inverseJoinColumns = @JoinColumn(name = "privilege_id", referencedColumnName = "id"))
        private Collection<Privilege> privileges = new ArrayList<>();

        public void addCustomer(CustomerAccount customer) {
            customerAccounts.add(customer);
        }

        public void addPrivilege(Privilege priv) {
            privileges.add(priv);
        }

    }



@Entity  
 public class Privilege {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;

        @Column(unique = true)
        private String name;

        public Privilege(String name) {
            this.name = name;
        }    
    }

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2023-03-02
    • 2020-07-02
    • 2016-03-18
    • 1970-01-01
    • 2013-08-28
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多