CdmAuthorisationAndAccessControl » History » Version 10
Andreas Kohlbecker, 08/31/2012 09:39 AM
1 | 1 | Andreas Kohlbecker | |
---|---|---|---|
2 | 3 | Andreas Kohlbecker | # Cdm authorisation and access control |
3 | 2 | Andreas Kohlbecker | |
4 | |||
5 | It is evident that the cdm library needs authorisation and access control. There are library methods which need to protected from unauthorised execution and there is also the data which is exposed by the library. Not all data should be visible to every user so a [[HibernateSpringAndRowlevelSecurity|row level access control]] is needed. |
||
6 | |||
7 | |||
8 | |||
9 | 4 | Andreas Kohlbecker | ## Questions |
10 | 2 | Andreas Kohlbecker | |
11 | 4 | Andreas Kohlbecker | |
12 | 7 | Andreas Kohlbecker | 1. Do we need a access control in the web service (cdmlib-remote) or is it sufficient to protect the service layer. As long web service controllers are not using DAO (cdmlib-persistence) methods directly it should not be necessary. |
13 | 4 | Andreas Kohlbecker | |
14 | |||
15 | |||
16 | 3 | Andreas Kohlbecker | ## Use cases |
17 | 4 | Andreas Kohlbecker | |
18 | |||
19 | 8 | Andreas Kohlbecker | A. a specific **classification sub tree** must not be **publicly visible** in the data portal and thus must be also hidden in the web service responses |
20 | 1 | Andreas Kohlbecker | |
21 | 9 | Andreas Kohlbecker | B. a specific **classification sub tree** is only visible for users which have a specific **role** but the user is not granted to **edit** anything in/below it |
22 | 1 | Andreas Kohlbecker | |
23 | 8 | Andreas Kohlbecker | C. A user is only granted to **edit descriptions** |
24 | |||
25 | D. A user is only granted to **edit structured descriptions** |
||
26 | |||
27 | E. Combinations of A, B and C, D must be possible |
||
28 | |||
29 | 10 | Andreas Kohlbecker | F. Only users with the **roles** *Admin* or **Usermanager** or the user in question it self (if currently authenticated) are allowed to execute **change password** |
30 | 8 | Andreas Kohlbecker | |
31 | 9 | Andreas Kohlbecker | G. Only users with the **roles** *Admin* or **Usermanager** are allowed to create or **edit** new users |
32 | 4 | Andreas Kohlbecker | |
33 | |||
34 | **Special cases:** |
||
35 | |||
36 | 6 | Andreas Kohlbecker | * **@TaxonNames@** can potentially be shared between different taxa, thus a situation may occur where a user has grants to edit taxon A but not for taxon B, but both taxa are sharing the same name. How will we handle this situation, should the name be cloned when the user starts editing taxon A, so that taxon A has another name entity than taxon B after the user saved the latest changes? |
37 | 4 | Andreas Kohlbecker | |
38 | 5 | Andreas Kohlbecker | * The same problem as described above for TaxonNames also accounts for *@References@*, but in this case the problem is more severe since references are very often part of multiple taxon names. |
39 | 4 | Andreas Kohlbecker | |
40 | |||
41 | |||
42 |