mitreid-connect
公開メンバ関数 | 静的公開変数類 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.mitre.uma.web.PermissionRegistrationEndpoint クラス
org.mitre.uma.web.PermissionRegistrationEndpoint 連携図
Collaboration graph

公開メンバ関数

String getPermissionTicket (@RequestBody String jsonString, Model m, Authentication auth)
 

静的公開変数類

static final String URL = "permission"
 

非公開変数類

PermissionService permissionService
 
ResourceSetService resourceSetService
 
SystemScopeService scopeService
 
JsonParser parser = new JsonParser()
 

静的非公開変数類

static final Logger logger = LoggerFactory.getLogger(PermissionRegistrationEndpoint.class)
 

詳解

著者
jricher

関数詳解

◆ getPermissionTicket()

String org.mitre.uma.web.PermissionRegistrationEndpoint.getPermissionTicket ( @RequestBody String  jsonString,
Model  m,
Authentication  auth 
)
inline
76  {
77 
78  ensureOAuthScope(auth, SystemScopeService.UMA_PROTECTION_SCOPE);
79 
80  try {
81 
82  // parse the permission request
83 
84  JsonElement el = parser.parse(jsonString);
85  if (el.isJsonObject()) {
86  JsonObject o = el.getAsJsonObject();
87 
88  Long rsid = getAsLong(o, "resource_set_id");
89  Set<String> scopes = getAsStringSet(o, "scopes");
90 
91  if (rsid == null || scopes == null || scopes.isEmpty()){
92  // missing information
93  m.addAttribute("code", HttpStatus.BAD_REQUEST);
94  m.addAttribute("errorMessage", "Missing required component of permission registration request.");
95  return JsonErrorView.VIEWNAME;
96  }
97 
98  // trim any restricted scopes
99  Set<SystemScope> scopesRequested = scopeService.fromStrings(scopes);
100  scopesRequested = scopeService.removeRestrictedAndReservedScopes(scopesRequested);
101  scopes = scopeService.toStrings(scopesRequested);
102 
103  ResourceSet resourceSet = resourceSetService.getById(rsid);
104 
105  // requested resource set doesn't exist
106  if (resourceSet == null) {
107  m.addAttribute("code", HttpStatus.NOT_FOUND);
108  m.addAttribute("errorMessage", "Requested resource set not found: " + rsid);
109  return JsonErrorView.VIEWNAME;
110  }
111 
112  // authorized user of the token doesn't match owner of the resource set
113  if (!resourceSet.getOwner().equals(auth.getName())) {
114  m.addAttribute("code", HttpStatus.FORBIDDEN);
115  m.addAttribute("errorMessage", "Party requesting permission is not owner of resource set, expected " + resourceSet.getOwner() + " got " + auth.getName());
116  return JsonErrorView.VIEWNAME;
117  }
118 
119  // create the permission
120  PermissionTicket permission = permissionService.createTicket(resourceSet, scopes);
121 
122  if (permission != null) {
123  // we've created the permission, return the ticket
124  JsonObject out = new JsonObject();
125  out.addProperty("ticket", permission.getTicket());
126  m.addAttribute("entity", out);
127 
128  m.addAttribute("code", HttpStatus.CREATED);
129 
130  return JsonEntityView.VIEWNAME;
131  } else {
132  // there was a failure creating the permission object
133 
134  m.addAttribute("code", HttpStatus.INTERNAL_SERVER_ERROR);
135  m.addAttribute("errorMessage", "Unable to save permission and generate ticket.");
136 
137  return JsonErrorView.VIEWNAME;
138  }
139 
140  } else {
141  // malformed request
142  m.addAttribute("code", HttpStatus.BAD_REQUEST);
143  m.addAttribute("errorMessage", "Malformed JSON request.");
144  return JsonErrorView.VIEWNAME;
145  }
146  } catch (JsonParseException e) {
147  // malformed request
148  m.addAttribute("code", HttpStatus.BAD_REQUEST);
149  m.addAttribute("errorMessage", "Malformed JSON request.");
150  return JsonErrorView.VIEWNAME;
151  }
152 
153  }
ResourceSetService resourceSetService
Definition: PermissionRegistrationEndpoint.java:68
PermissionTicket createTicket(ResourceSet resourceSet, Set< String > scopes)
JsonParser parser
Definition: PermissionRegistrationEndpoint.java:73
SystemScopeService scopeService
Definition: PermissionRegistrationEndpoint.java:71
Set< SystemScope > removeRestrictedAndReservedScopes(Set< SystemScope > scopes)
Set< SystemScope > fromStrings(Set< String > scope)
PermissionService permissionService
Definition: PermissionRegistrationEndpoint.java:65
Set< String > toStrings(Set< SystemScope > scope)

メンバ詳解

◆ logger

final Logger org.mitre.uma.web.PermissionRegistrationEndpoint.logger = LoggerFactory.getLogger(PermissionRegistrationEndpoint.class)
staticprivate

◆ parser

JsonParser org.mitre.uma.web.PermissionRegistrationEndpoint.parser = new JsonParser()
private

◆ permissionService

PermissionService org.mitre.uma.web.PermissionRegistrationEndpoint.permissionService
private

◆ resourceSetService

ResourceSetService org.mitre.uma.web.PermissionRegistrationEndpoint.resourceSetService
private

◆ scopeService

SystemScopeService org.mitre.uma.web.PermissionRegistrationEndpoint.scopeService
private

◆ URL

final String org.mitre.uma.web.PermissionRegistrationEndpoint.URL = "permission"
static

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