rsanchez
2017-04-10 8d99c88af55041ff06e6b9372b6b1f66220bed38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package net.curisit.securis.security;
import java.security.Principal;
import java.util.Map;
import java.util.Set;
import javax.ws.rs.core.SecurityContext;
import net.curisit.integrity.commons.Utils;
import net.curisit.securis.db.User;
public class BasicSecurityContext implements SecurityContext {
   final public static String ROL_ADVANCE = "advance";
   final public static String ROL_ADMIN = "admin";
   final public static String ROL_BASIC = "basic";
   final static Map<String, Integer> ROLES = Utils.<String, Integer> createMap(ROL_BASIC, User.Rol.BASIC, ROL_ADVANCE, User.Rol.ADVANCE, ROL_ADMIN, User.Rol.ADMIN);
   Principal user = null;
   int roles = 0;
   boolean secure = false;
   Set<Integer> organizationsIds = null;
   Set<Integer> applicationsIds = null;
   double ran = 0;
   public BasicSecurityContext(String username, int roles, boolean secure) {
       user = new UserPrincipal(username);
       this.roles = roles;
       this.secure = secure;
       ran = Math.random();
   }
   @Override
   public Principal getUserPrincipal() {
       return user;
   }
   @Override
   public boolean isUserInRole(String role) {
       Integer introle = ROLES.get(role);
       return introle != null && (introle & roles) != 0;
   }
   @Override
   public boolean isSecure() {
       return secure;
   }
   @Override
   public String getAuthenticationScheme() {
       return null;
   }
   @Override
   public String toString() {
       return String.format("SecurityContextWrapper(%f) %s", ran, user);
   }
   public void setOrganizationsIds(Set<Integer> orgs) {
       this.organizationsIds = orgs;
   }
   public Set<Integer> getOrganizationsIds() {
       return this.organizationsIds;
   }
   public Set<Integer> getApplicationsIds() {
       return applicationsIds;
   }
   public void setApplicationsIds(Set<Integer> applicationsIds) {
       this.applicationsIds = applicationsIds;
   }
   private class UserPrincipal implements Principal {
       final String name;
       public UserPrincipal(String name) {
           this.name = name;
       }
       @Override
       public String getName() {
           return this.name;
       }
       @Override
       public String toString() {
           return String.format("[%s]", name);
       }
   }
   public boolean isOrgAccesible(Integer orgid) {
       if (organizationsIds == null || orgid == null) {
           return false;
       }
       return organizationsIds.contains(orgid);
   }
   public boolean isAppAccesible(Integer appid) {
       if (applicationsIds == null || appid == null) {
           return false;
       }
       return applicationsIds.contains(appid);
   }
}