Cred delete fixes
[aaf/authz.git] / auth / auth-service / src / main / java / org / onap / aaf / auth / service / facade / AuthzFacadeImpl.java
index 02fa842..323c9fe 100644 (file)
@@ -44,7 +44,9 @@ import static org.onap.aaf.auth.layer.Result.OK;
 
 import java.io.IOException;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -169,12 +171,19 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         String msgId;
         String[] detail;
         boolean hidemsg = false;
-        if (result.variables==null) {
+        if (result.variables==null || result.variables.length<1) {
             detail = new String[1];
         } else {
-            int l = result.variables.length;
-            detail=new String[l+1];
-            System.arraycopy(result.variables, 0, detail, 1, l);
+               List<String> dlist = new ArrayList<String>();
+               dlist.add(null);
+               String os;
+               for(Object s : result.variables) {
+                       if(s!=null && (os=s.toString()).length()>0) {
+                               dlist.add(os);
+                       }
+               }
+               detail = new String[dlist.size()];
+               dlist.toArray(detail);
         }
         //int httpstatus;
         
@@ -280,10 +289,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 break;
             case ERR_ChoiceNeeded:
                 msgId = "SVC1300";
-                detail = new String[result.variables.length];
-                for(int i=0; i<result.variables.length;++i) {
-                       detail[i]=result.variables[i].toString();
-                }
+                detail[0] = "Choice Needed";
                 response.setStatus(/*httpstatus=*/300);
                 break;
             case ERR_Backend: 
@@ -1623,7 +1629,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 Question.logEncryptTrace(trans,data.asString());
             }
 
-            return service.changeUserCred(trans, data.asObject());
+            return service.resetUserCred(trans, data.asObject());
         } catch (APIException e) {
             trans.error().log(e,"Bad Input data");
             return Result.err(Status.ERR_BadData, e.getLocalizedMessage());
@@ -2274,6 +2280,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public static final String GET_HISTORY_ROLE = "getHistoryByRole";
     public static final String GET_HISTORY_PERM = "getHistoryByPerm";
     public static final String GET_HISTORY_NS = "getHistoryByNS";
+    public static final String GET_HISTORY_SUBJECT = "getHistoryBySubject";
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getHistoryByUser(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
      */
@@ -2447,6 +2454,50 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
+    /* (non-Javadoc)
+     * @see com.att.authz.facade.AuthzFacade#getHistoryByUser(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
+     */
+    @Override
+    public Result<Void> getHistoryBySubject(AuthzTrans trans, HttpServletResponse resp, String subject, String target, int[] yyyymm, final int sort) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(GET_HISTORY_SUBJECT);
+        sb.append(' ');
+        sb.append(subject);
+        sb.append(" for ");
+        boolean first = true;
+        for (int i : yyyymm) {
+            if (first) {
+                first = false;
+            } else {
+                sb.append(',');
+            }
+            sb.append(i);
+        }
+        TimeTaken tt = trans.start(sb.toString(), Env.SUB|Env.ALWAYS);
+
+        try {
+            Result<HISTORY> rh = service.getHistoryBySubject(trans,subject,target,yyyymm,sort);
+            switch(rh.status) {
+                case OK: 
+                    RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
+                    if (Question.willSpecialLog(trans, trans.user())) {
+                        Question.logEncryptTrace(trans,data.asString());
+                    }
+
+                    data.to(resp.getOutputStream());
+                    setContentType(resp,historyDF.getOutType());
+                    return Result.ok();
+                default:
+                    return Result.err(rh);
+            }
+        } catch (Exception e) {
+            trans.error().log(e,IN,GET_HISTORY_USER);
+            return Result.err(e);
+        } finally {
+            tt.done();
+        }
+    }
+
     public final static String CACHE_CLEAR = "cacheClear "; 
 //    public final static String CACHE_VALIDATE = "validateCache";