2017-10-30 10 views
0

私のアプリケーションにはspring-boot-dependencies 1.3.5.RELEASEが使用されており、Java SE 1.8で実行されています。私はApache Shiro' to mapユーザーgroups inロールtoユーザー許可whereas I am using DAO (データアクセスオブジェクト `)をデータベースからアクセスするために使用しています。既存のデータアクセスオブジェクトクラスにおけるApache Shiroの役割とアクセス許可の影響

我々は

  • Employee "い-" Department
  • Department "い-" Domain
  • Userは "持っている-" というDomain
をそのような実体があるとしましょう

エンティティクラス:従業員

@Entity 
@Table(name = "EMPLOYEE") 
@Data 
@EqualsAndHashCode(of = "id", callSuper = false) 
public class Employee { 

    @Id 
    @GeneratedValue 
    private int id; 
    private String name; 

    @ManyToOne 
    @JoinColumn(name="department_id") 
    private Department dept 

} 

エンティティークラス:部門

@Entity 
@Table(name="DEPARTMENT") 
@Data 
@EqualsAndHashCode(of = "id", callSuper = false) 
public class Department { 

    @Id 
    @GeneratedValue 
    private int id; 
    private String name; 

    @ManyToOne 
    @JoinColumn(name="domain_id") 
    private Domain domain 

    @OneToMany(mappedBy="department") 
    private Set<Employee> employees; 

} 

エンティティークラス:ドメイン

@Entity 
    @Table(name="DOMAIN") 
    @Data 
    @EqualsAndHashCode(of = "id", callSuper = false) 
    public class Domain{ 

     @Id 
     @GeneratedValue 
     private int id; 
     private String name; 

    } 

今、私はそれらのEmployeesDepartmentsに関連付けられているを見てUser(ログインユーザ)を制限したいと思いますDomainにはUserへのアクセス権があります。 DAOクラスのクエリを変更せずに、または最小のコード変更でこれを行うことなく、これを達成する方法はありますか?ありがとうございました。

答えて

0

どのレルムを使用していますか? JdbcRealmを使用している場合は、userRolesQueryを任意のクエリに設定する必要があります。

関連する問題