66 Map<UmaScriptByScope, UmaAuthorizationContext> scriptMap =
new HashMap<UmaScriptByScope, UmaAuthorizationContext>();
67 Map<String, String> ticketAttributes =
new HashMap<String, String>();
69 List<ClaimDefinition> missedClaims =
new ArrayList<ClaimDefinition>();
71 UmaAuthorizationContextBuilder contextBuilder =
new UmaAuthorizationContextBuilder(
appConfiguration,
76 for (UmaScopeDescription scope : requestedScopes.keySet()) {
77 List<String> authorizationPolicies = scope.getAuthorizationPolicies();
78 if (authorizationPolicies != null && !authorizationPolicies.isEmpty()) {
79 for (String scriptDN : authorizationPolicies) {
82 UmaAuthorizationContext context = contextBuilder.build(script);
83 scriptMap.put(
new UmaScriptByScope(scope, script), context);
86 if (requiredClaims != null && !requiredClaims.isEmpty()) {
87 for (ClaimDefinition definition : requiredClaims) {
88 if (!claims.has(definition.getName())) {
89 missedClaims.add(definition);
95 if (StringUtils.isNotBlank(claimsGatheringScriptName)) {
98 if (!UmaConstants.NO_SCRIPT.equalsIgnoreCase(claimsGatheringScriptName)) {
99 log.error(
"External 'getClaimsGatheringScriptName' script method return null or blank value, script: " + script.getName());
103 log.error(
"Unable to load UMA script dn: '{}'", scriptDN);
107 log.trace(
"No policies defined for scope: " + scope.getId() +
", scopeDn: " + scope.getDn());
111 if (!missedClaims.isEmpty()) {
112 ticketAttributes.put(UmaPermission.PCT, pct.getCode());
115 UmaNeedInfoResponse needInfoResponse =
new UmaNeedInfoResponse();
116 needInfoResponse.setTicket(newTicket);
117 needInfoResponse.setError(
"need_info");
119 needInfoResponse.setRequiredClaims(missedClaims);
121 throw new WebApplicationException(Response.status(Response.Status.FORBIDDEN).entity(ServerUtil.asJsonSilently(needInfoResponse)).build());
UmaSessionService sessionService
Definition: UmaNeedsInfoService.java:58
ExternalUmaRptPolicyService policyService
Definition: UmaNeedsInfoService.java:56
String changeTicket(List< UmaPermission > permissions, Map< String, String > attributes)
Definition: UmaPermissionService.java:217
UmaResourceService resourceService
Definition: UmaNeedsInfoService.java:54
Logger log
Definition: UmaNeedsInfoService.java:46
AttributeService attributeService
Definition: UmaNeedsInfoService.java:52
AppConfiguration appConfiguration
Definition: UmaNeedsInfoService.java:48
UmaPermissionService permissionService
Definition: UmaNeedsInfoService.java:50
CustomScriptConfiguration getScriptByDn(String scriptDn)
Definition: ExternalUmaRptPolicyService.java:75
UserService userService
Definition: UmaNeedsInfoService.java:60
String constructGatheringScriptNameValue(String existingValue, String claimsGatheringScriptName)
Definition: UmaNeedsInfoService.java:127
List< ClaimDefinition > getRequiredClaims(CustomScriptConfiguration script, UmaAuthorizationContext context)
Definition: ExternalUmaRptPolicyService.java:107
String buildClaimsGatheringRedirectUri(Collection< UmaAuthorizationContext > contexts, Client client, String newTicket)
Definition: UmaNeedsInfoService.java:134
String getClaimsGatheringScriptName(CustomScriptConfiguration script, UmaAuthorizationContext context)
Definition: ExternalUmaRptPolicyService.java:120