2017-10-30 2 views
0

Ich verwende spring-boot-dependencies 1.3.5.RELEASE für meine Anwendung und es läuft auf Java SE 1.8. Ich benutze Apache Shiro' to map Benutzer groups in Rollen to Benutzer Berechtigungen whereas I am using DAO ( Data Access Object `) für den Zugriff auf Daten aus der Datenbank.Auswirkungen der Rollen und Berechtigungen von Apache Shiro in vorhandenen Klassen für Datenzugriffsobjekte

Lassen Sie uns sagen, wir haben eine Entitäten, so dass

  • Employee "hat-ein" Department
  • Department "hat-ein" Domain
  • User "hat-ein" Domain

Entitätsklassen: Mitarbeiter

Klassen
@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: Abteilung

@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; 

} 

Entitätsklassen: Domain

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

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

    } 

Nun möchte Ich mag User (ein Login-Benutzer) beschränken nur diejenigen Employees zu sehen, die mit dem Departments verbunden sind who Domain hat einen Zugriff auf die User. Gibt es eine Möglichkeit, dies zu erreichen, ohne Abfragen in DAO-Klassen zu ändern oder dies mit minimalen Codeänderungen zu tun? Danke.

Antwort

0

Welchen Realm verwenden Sie? Wenn Sie die JdbcRealm verwenden, sollten Sie userRolesQuery zu einer Abfrage Ihrer Wahl festlegen können.

Verwandte Themen