keycloak
静的公開メンバ関数 | 静的非公開メンバ関数 | 全メンバ一覧
org.keycloak.authorization.UserManagedPermissionUtil クラス
org.keycloak.authorization.UserManagedPermissionUtil 連携図
Collaboration graph

静的公開メンバ関数

static void updatePolicy (PermissionTicket ticket, StoreFactory storeFactory)
 
static void removePolicy (PermissionTicket ticket, StoreFactory storeFactory)
 

静的非公開メンバ関数

static Policy createUserManagedPermission (PermissionTicket ticket, StoreFactory storeFactory)
 

詳解

著者
Pedro Igor

関数詳解

◆ createUserManagedPermission()

static Policy org.keycloak.authorization.UserManagedPermissionUtil.createUserManagedPermission ( PermissionTicket  ticket,
StoreFactory  storeFactory 
)
inlinestaticprivate
98  {
99  PolicyStore policyStore = storeFactory.getPolicyStore();
100  UserPolicyRepresentation userPolicyRep = new UserPolicyRepresentation();
101 
102  userPolicyRep.setName(KeycloakModelUtils.generateId());
103  userPolicyRep.addUser(ticket.getRequester());
104 
105  Policy userPolicy = policyStore.create(userPolicyRep, ticket.getResourceServer());
106 
107  userPolicy.setOwner(ticket.getOwner());
108 
109  PolicyRepresentation policyRep = new PolicyRepresentation();
110 
111  policyRep.setName(KeycloakModelUtils.generateId());
112  policyRep.setType("uma");
113  policyRep.addPolicy(userPolicy.getId());
114 
115  Policy policy = policyStore.create(policyRep, ticket.getResourceServer());
116 
117  policy.setOwner(ticket.getOwner());
118  policy.addResource(ticket.getResource());
119 
120  Scope scope = ticket.getScope();
121 
122  if (scope != null) {
123  policy.addScope(scope);
124  }
125 
126  return policy;
127  }

◆ removePolicy()

static void org.keycloak.authorization.UserManagedPermissionUtil.removePolicy ( PermissionTicket  ticket,
StoreFactory  storeFactory 
)
inlinestatic
71  {
72  Policy policy = ticket.getPolicy();
73 
74  if (policy != null) {
75  HashMap<String, String> filter = new HashMap<>();
76 
77  filter.put(PermissionTicket.OWNER, ticket.getOwner());
78  filter.put(PermissionTicket.REQUESTER, ticket.getRequester());
79  filter.put(PermissionTicket.RESOURCE, ticket.getResource().getId());
80  filter.put(PermissionTicket.GRANTED, Boolean.TRUE.toString());
81 
82  List<PermissionTicket> tickets = storeFactory.getPermissionTicketStore().find(filter, ticket.getResourceServer().getId(), -1, -1);
83 
84  if (tickets.isEmpty()) {
85  PolicyStore policyStore = storeFactory.getPolicyStore();
86 
87  for (Policy associatedPolicy : policy.getAssociatedPolicies()) {
88  policyStore.delete(associatedPolicy.getId());
89  }
90 
91  policyStore.delete(policy.getId());
92  } else if (ticket.getScope() != null) {
93  policy.removeScope(ticket.getScope());
94  }
95  }
96  }

◆ updatePolicy()

static void org.keycloak.authorization.UserManagedPermissionUtil.updatePolicy ( PermissionTicket  ticket,
StoreFactory  storeFactory 
)
inlinestatic
36  {
37  Scope scope = ticket.getScope();
38  Policy policy = ticket.getPolicy();
39 
40  if (policy == null) {
41  HashMap<String, String> filter = new HashMap<>();
42 
43  filter.put(PermissionTicket.OWNER, ticket.getOwner());
44  filter.put(PermissionTicket.REQUESTER, ticket.getRequester());
45  filter.put(PermissionTicket.RESOURCE, ticket.getResource().getId());
46  filter.put(PermissionTicket.POLICY_IS_NOT_NULL, Boolean.TRUE.toString());
47 
48  List<PermissionTicket> tickets = storeFactory.getPermissionTicketStore().find(filter, ticket.getResourceServer().getId(), -1, 1);
49 
50  if (!tickets.isEmpty()) {
51  policy = tickets.iterator().next().getPolicy();
52  }
53  }
54 
55  if (ticket.isGranted()) {
56  if (policy == null) {
57  policy = createUserManagedPermission(ticket, storeFactory);
58  }
59 
60  if (scope != null && !policy.getScopes().contains(scope)) {
61  policy.addScope(scope);
62  }
63 
64  ticket.setPolicy(policy);
65  } else if (scope != null) {
66  policy.removeScope(scope);
67  ticket.setPolicy(null);
68  }
69  }
static Policy createUserManagedPermission(PermissionTicket ticket, StoreFactory storeFactory)
Definition: UserManagedPermissionUtil.java:98

このクラス詳解は次のファイルから抽出されました: