Project

General

Profile

1
package eu.dnetlib.openaire.rest;
2

    
3
import eu.dnetlib.openaire.rest.inputHandler.UserHandler;
4
import org.apache.log4j.Logger;
5

    
6
import java.util.ArrayList;
7
import java.util.Arrays;
8
import java.util.List;
9

    
10
/**
11
 * Created by sofia on 20/4/2017.
12
 */
13
public class Authorization {
14

    
15
    private static Logger logger = Logger.getLogger(Authorization.class);
16
    List<String> registeredRoles = new ArrayList<String>(Arrays.asList("Super Administrator", "Portal Administrator", "Expert - Community",
17
            "Expert - Funder", "Curator - Claim", "Curator - Project", "Curator - Community", "Curator - Institution", "Cuthor", "Registered", "User Manager"));
18
    List<String> adminRoles = new ArrayList<String>(Arrays.asList("Super Administrator", "Curator - Claim", "Portal Administrator"));
19
    List<String> projectCuratorRoles = new ArrayList<String>(Arrays.asList("Curator - Project"));
20
    UserHandler userHandler = null;
21
    String originServer = null;
22

    
23
    //    public static boolean isRegistered(String token) {
24
//
25
//        Claims claims = Jwts.parser()
26
//                .setSigningKey(DatatypeConverter.parseBase64Binary("my-very-secret"))
27
//                .parseClaimsJws(token).getBody();
28
//
29
//        if (claims.get("role").equals("1") || claims.get("role").equals("2")) {
30
//            logger.debug("It's  registered with role " + claims.get("role"));
31
//            return true;
32
//        } else {
33
//            logger.debug("It's *not*  registered with role " + claims.get("role"));
34
//
35
//            return false;
36
//        }
37
//    }
38
//
39
//    public static boolean isAdmin(String token) {
40
//        Claims claims = Jwts.parser()
41
//                .setSigningKey(DatatypeConverter.parseBase64Binary("my-very-secret"))
42
//                .parseClaimsJws(token).getBody();
43
//        if (claims.get("role").equals("2")) {
44
//            logger.debug("It's  admin with role " + claims.get("role"));
45
//            return true;
46
//        } else {
47
//            logger.debug("It's *not*  admin with role " + claims.get("role"));
48
//            return false;
49
//        }
50
//    }
51
    public boolean isRegistered(String token) {
52
        UserInfo userInfo = userHandler.getUserInfo(token);
53
        return isRegistered(userInfo);
54

    
55
    }
56

    
57
    public boolean isRegistered(UserInfo userInfo) {
58
        if (userInfo != null && userInfo.getEdu_person_entitlements() != null) {
59

    
60
            return hasRole(userInfo.getEdu_person_entitlements(), registeredRoles);
61
        } else {
62
            return false;
63
        }
64

    
65
    }
66

    
67
    public boolean isAdmin(String token) {
68
        UserInfo userInfo = userHandler.getUserInfo(token);
69
        return isAdmin(userInfo);
70

    
71
    }
72

    
73
    public boolean isAdmin(UserInfo userInfo) {
74
        if (userInfo != null && userInfo.getEdu_person_entitlements() != null) {
75

    
76
            return hasRole(userInfo.getEdu_person_entitlements(), adminRoles);
77
        } else {
78
            logger.debug(" User has no Valid UserInfo");
79
            return false;
80
        }
81

    
82
    }
83

    
84
    public boolean isProjectCurator(String token) {
85
        UserInfo userInfo = userHandler.getUserInfo(token);
86
        return isProjectCurator(userInfo);
87

    
88
    }
89

    
90
    public boolean isProjectCurator(UserInfo userInfo) {
91
        if (userInfo != null && userInfo.getEdu_person_entitlements() != null) {
92

    
93
            return hasRole(userInfo.getEdu_person_entitlements(), projectCuratorRoles);
94
        } else {
95
            return false;
96
        }
97

    
98
    }
99

    
100
    public boolean hasRole(List<String> givenRoles, List<String> authorizedRoles) {
101

    
102
        logger.debug("It's  registered with role " + givenRoles);
103
        for (String gRole : givenRoles) {
104
            if (authorizedRoles.indexOf(gRole) != -1) {
105
                return true;
106
            }
107
        }
108
        logger.debug("Not Authorized. Authorized roles are" + authorizedRoles);
109
        return false;
110

    
111
    }
112

    
113
    public boolean hasValidOrigin(String origin) {
114
        if (origin != null && originServer.equals(origin)) {
115
            return true;
116
        }
117
        return false;
118
    }
119

    
120
    public List<String> getRegisteredRoles() {
121
        return registeredRoles;
122
    }
123

    
124
    public void setRegisteredRoles(List<String> registeredRoles) {
125
        this.registeredRoles = registeredRoles;
126
    }
127

    
128
    public List<String> getAdminRoles() {
129
        return adminRoles;
130
    }
131

    
132
    public void setAdminRoles(List<String> adminRoles) {
133
        this.adminRoles = adminRoles;
134
    }
135

    
136
    public List<String> getProjectCuratorRoles() {
137
        return projectCuratorRoles;
138
    }
139

    
140
    public void setProjectCuratorRoles(List<String> projectCuratorRoles) {
141
        this.projectCuratorRoles = projectCuratorRoles;
142
    }
143

    
144
    public UserHandler getUserHandler() {
145
        return userHandler;
146
    }
147

    
148
    public void setUserHandler(UserHandler userHandler) {
149
        this.userHandler = userHandler;
150
    }
151

    
152
    public String getOriginServer() {
153
        return originServer;
154
    }
155

    
156
    public void setOriginServer(String originServer) {
157
        this.originServer = originServer;
158
    }
159
}
(1-1/3)