X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-oauth%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Foauth%2Fservice%2FJSONPermLoaderFactory.java;h=f163f21cea8dbae4138e0cde9de0378660103686;hb=1296352d8eafee57f982a4342ad79ada4aa56d28;hp=f44008698852739d8838df4e9813d36c5b3bd328;hpb=5a081a25fd94da790a59a68195a19bc0ef7aa20c;p=aaf%2Fauthz.git diff --git a/auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/service/JSONPermLoaderFactory.java b/auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/service/JSONPermLoaderFactory.java index f4400869..f163f21c 100644 --- a/auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/service/JSONPermLoaderFactory.java +++ b/auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/service/JSONPermLoaderFactory.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -38,82 +38,82 @@ import org.onap.aaf.misc.env.Env; import org.onap.aaf.misc.env.TimeTaken; public class JSONPermLoaderFactory { - /** - * Load JSON Perms from AAF Service (Remotely) - * @param aafcon - * @param timeout - * @return - */ - public static JSONPermLoader remote(final AAFCon aafcon, final int timeout) { - return new JSONPermLoader() { - public Result loadJSONPerms(AuthzTrans trans, String user, Set scopes) throws APIException, CadiException { - Rcli c = aafcon.clientAs(Config.AAF_DEFAULT_VERSION,trans.getUserPrincipal()); - StringBuilder pathinfo = new StringBuilder("/authz/perms/user/"); - pathinfo.append(user); - pathinfo.append("?scopes="); - boolean first = true; - for(String s : scopes) { - if(first) { - first = false; - } else { - pathinfo.append(':'); - } - pathinfo.append(s); - } - TimeTaken tt = trans.start("Call AAF Service", Env.REMOTE); - try { - Future fs = c.read(pathinfo.toString(), "application/Perms+json;charset=utf-8;version=2.0"); - if(fs.get(timeout)) { - return Result.ok(fs.body()); - } else if(fs.code()==404) { - return Result.err(Result.ERR_NotFound,fs.body()); - } else { - return Result.err(Result.ERR_Backend,"Error accessing AAF %s: %s",Integer.toString(fs.code()),fs.body()); - } - } finally { - tt.done(); - } - } - }; - } - public static JSONPermLoader direct(final Question question) { - return new JSONPermLoader() { - public Result loadJSONPerms(AuthzTrans trans, String user, Set scopes) throws APIException, CadiException { - TimeTaken tt = trans.start("Cached DB Perm lookup", Env.SUB); - Result> pd; - try { - pd = question.getPermsByUser(trans, user, false); - } finally { - tt.done(); - } - if(pd.notOK()) { - return Result.err(pd); - } - // Since we know it is - StringBuilder sb = new StringBuilder("{\"perm\":["); - boolean first = true; - for(PermDAO.Data d : pd.value) { - if(scopes.contains(d.ns)) { - if(first) { - first = false; - } else { - sb.append(','); - } - sb.append("{\"ns\":\""); - sb.append(d.ns); - sb.append("\",\"type\":\""); - sb.append(d.type); - sb.append("\",\"instance\":\""); - sb.append(d.instance); - sb.append("\",\"action\":\""); - sb.append(d.action); - sb.append("\"}"); - } - } - sb.append("]}"); - return Result.ok(sb.toString()); - } - }; - } + /** + * Load JSON Perms from AAF Service (Remotely) + * @param aafcon + * @param timeout + * @return + */ + public static JSONPermLoader remote(final AAFCon aafcon, final int timeout) { + return new JSONPermLoader() { + public Result loadJSONPerms(AuthzTrans trans, String user, Set scopes) throws APIException, CadiException { + Rcli c = aafcon.clientAs(Config.AAF_DEFAULT_API_VERSION,trans.getUserPrincipal()); + StringBuilder pathinfo = new StringBuilder("/authz/perms/user/"); + pathinfo.append(user); + pathinfo.append("?scopes="); + boolean first = true; + for (String s : scopes) { + if (first) { + first = false; + } else { + pathinfo.append(':'); + } + pathinfo.append(s); + } + TimeTaken tt = trans.start("Call AAF Service", Env.REMOTE); + try { + Future fs = c.read(pathinfo.toString(), "application/Perms+json;charset=utf-8;version=2.0"); + if (fs.get(timeout)) { + return Result.ok(fs.body()); + } else if (fs.code()==404) { + return Result.err(Result.ERR_NotFound,fs.body()); + } else { + return Result.err(Result.ERR_Backend,"Error accessing AAF %s: %s",Integer.toString(fs.code()),fs.body()); + } + } finally { + tt.done(); + } + } + }; + } + public static JSONPermLoader direct(final Question question) { + return new JSONPermLoader() { + public Result loadJSONPerms(AuthzTrans trans, String user, Set scopes) throws APIException, CadiException { + TimeTaken tt = trans.start("Cached DB Perm lookup", Env.SUB); + Result> pd; + try { + pd = question.getPermsByUser(trans, user, false); + } finally { + tt.done(); + } + if (pd.notOK()) { + return Result.err(pd); + } + // Since we know it is + StringBuilder sb = new StringBuilder("{\"perm\":["); + boolean first = true; + for (PermDAO.Data d : pd.value) { + if (scopes.contains(d.ns)) { + if (first) { + first = false; + } else { + sb.append(','); + } + sb.append("{\"ns\":\""); + sb.append(d.ns); + sb.append("\",\"type\":\""); + sb.append(d.type); + sb.append("\",\"instance\":\""); + sb.append(d.instance); + sb.append("\",\"action\":\""); + sb.append(d.action); + sb.append("\"}"); + } + } + sb.append("]}"); + return Result.ok(sb.toString()); + } + }; + } }