Sonar Fixes: Variable name changes
[aaf/authz.git] / auth / auth-gui / src / main / java / org / onap / aaf / auth / gui / AAF_GUI.java
index 359cb28..8492b85 100644 (file)
@@ -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.
@@ -26,6 +26,9 @@ import static org.onap.aaf.auth.rserv.HttpMethods.POST;
 import static org.onap.aaf.auth.rserv.HttpMethods.PUT;
 
 import javax.servlet.Filter;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import org.onap.aaf.auth.cmd.Cmd;
 import org.onap.aaf.auth.cui.CUI;
@@ -40,6 +43,7 @@ import org.onap.aaf.auth.gui.pages.CMArtiChangeAction;
 import org.onap.aaf.auth.gui.pages.CMArtiChangeForm;
 import org.onap.aaf.auth.gui.pages.CMArtifactShow;
 import org.onap.aaf.auth.gui.pages.CredDetail;
+import org.onap.aaf.auth.gui.pages.CredHistory;
 import org.onap.aaf.auth.gui.pages.Home;
 import org.onap.aaf.auth.gui.pages.LoginLanding;
 import org.onap.aaf.auth.gui.pages.LoginLandingAction;
@@ -66,6 +70,7 @@ import org.onap.aaf.auth.gui.pages.UserRoleExtend;
 import org.onap.aaf.auth.gui.pages.UserRoleRemove;
 import org.onap.aaf.auth.gui.pages.WebCommand;
 import org.onap.aaf.auth.rserv.CachingFileAccess;
+import org.onap.aaf.auth.rserv.HttpCode;
 import org.onap.aaf.auth.server.AbsService;
 import org.onap.aaf.auth.server.JettyServiceStarter;
 import org.onap.aaf.auth.server.Log4JLogIt;
@@ -98,10 +103,10 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
     public static final String AAF_GUI_COPYRIGHT = "aaf_gui_copyright";
     public static final String HTTP_SERVLET_REQUEST = "HTTP_SERVLET_REQUEST";
     public static final int TIMEOUT = 60000;
-    public static final String app = "AAF GUI";
-    
+    public static final String APP = "AAF GUI";
+
     // AAF API
-    
+
     // Certificate manager API
     public RosettaDF<Artifacts> artifactsDF;
     public RosettaDF<CertInfo>  certInfoDF;
@@ -109,32 +114,35 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
     private final AAFConHttp cmCon;
     public final AAFConHttp aafCon;
     public final AAFLurPerm lur;
-    
-    public final Slot slot_httpServletRequest;
+
+    public final Slot slotHttpServletRequest;
     protected final String deployedVersion;
     private StaticSlot sThemeWebPath;
     private StaticSlot sDefaultTheme;
-//  public final String theme;
 
 
     public AAF_GUI(final AuthzEnv env) throws Exception {
         super(env.access(), env);
         sDefaultTheme = env.staticSlot(AAF_GUI_THEME);
-        env.put(sDefaultTheme, env.getProperty(AAF_GUI_THEME,"onap"));
-        
+        String defTheme = env.getProperty(AAF_GUI_THEME,"onap");
+        env.put(sDefaultTheme, defTheme);
+
         sThemeWebPath = env.staticSlot(CachingFileAccess.CFA_WEB_PATH);
         if(env.get(sThemeWebPath)==null) {
-               env.put(sThemeWebPath,"theme");
+            env.put(sThemeWebPath,"theme");
         }
 
-        slot_httpServletRequest = env.slot(HTTP_SERVLET_REQUEST);
-        deployedVersion = access.getProperty(Config.AAF_RELEASE, "N/A:2.x");
+
+        slotHttpServletRequest = env.slot(HTTP_SERVLET_REQUEST);
+        deployedVersion = appVersion;
+
 
         // Certificate Manager
-        cmCon =  new AAFConHttp(env.access(),Config.AAF_URL_CM);
+        String aafUrlCm = env.getProperty(Config.AAF_URL_CM,Config.AAF_URL_CM_DEF);
+        cmCon =  new AAFConHttp(env.access(),aafUrlCm);
         artifactsDF = env.newDataFactory(Artifacts.class);
         certInfoDF  = env.newDataFactory(CertInfo.class);
-        
+
 
         /////////////////////////
         // Screens
@@ -152,72 +160,89 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
         Page roleDetail = new Display(this, GET, new RoleDetail(this, start, myRoles)).page();
                           new Display(this, POST, new RoleDetailAction(this,start,myRoles,roleDetail));
                           new Display(this, GET, new RoleHistory(this,start,myRoles,roleDetail));
-                            
+
         // MyNameSpace
         final Page myNamespaces = new Display(this, GET, new NssShow(this, start)).page();
         Page nsDetail  = new Display(this, GET, new NsDetail(this, start, myNamespaces)).page();
-                              new Display(this, GET, new NsHistory(this, start,myNamespaces,nsDetail));
+                         new Display(this, GET, new NsHistory(this, start,myNamespaces,nsDetail));
         Page crdDetail = new Display(this, GET, new CredDetail(this, start, myNamespaces, nsDetail)).page();
+                         new Display(this, GET, new CredHistory(this,start,myNamespaces,nsDetail,crdDetail));
         Page artiShow  = new Display(this, GET, new CMArtifactShow(this, start, myNamespaces, nsDetail, crdDetail)).page();
         Page artiCForm = new Display(this, GET, new CMArtiChangeForm(this, start, myNamespaces, nsDetail, crdDetail,artiShow)).page();
                          new Display(this, POST, new CMArtiChangeAction(this, start,artiShow,artiCForm));
-                             
+
         // Password Change Screens
         final Page pwc = new Display(this, GET, new PassChangeForm(this, start,crdDetail)).page();
                          new Display(this, POST, new PassChangeAction(this, start, pwc));
-                         
+
         // Password Delete Screen
                          new Display(this, GET, new PassDeleteAction(this, start,crdDetail));
 
         // Validation Change Screens
         final Page validate = new Display(this, GET, new ApprovalForm(this, start)).page();
                               new Display(this, POST, new ApprovalAction(this, start, validate));
-                            
+
         // Onboard, Detailed Edit Screens
         final Page onb = new Display(this, GET, new NsInfoForm(this, start)).page();
                          new Display(this, POST, new NsInfoAction(this, start, onb));
 
         // Web Command Screens
         /* final Page webCommand =*/ new Display(this, GET, new WebCommand(this, start)).page();
-        
+
         // API Docs
         final Page apidocs = new Display(this, GET, new ApiDocs(this, start)).page();
                              new Display(this, GET, new ApiExample(this,start, apidocs)).page();
-        
+
         // Permission Grant Page
         final Page permGrant =     new Display(this, GET, new PermGrantForm(this, start)).page();
                                  new Display(this, POST, new PermGrantAction(this, start, permGrant)).page();
-                                 
+
         // Login Landing if no credentials detected
         final Page loginLanding = new Display(this, GET, new LoginLanding(this, start)).page();
                                   new Display(this, POST, new LoginLandingAction(this, start, loginLanding));
-                                  
+
         // User Role Request Extend and Remove
         new Display(this, GET, new UserRoleExtend(this, start,myRoles)).page();
         new Display(this, GET, new UserRoleRemove(this, start,myRoles)).page();
-        
+
         // See my Pending Requests
         final Page requestsShow = new Display(this, GET, new PendingRequestsShow(this, start)).page();
                                   new Display(this, GET, new RequestDetail(this, start, requestsShow));
-                                  
+
         // Command line Mechanism
         route(env, PUT, "/gui/cui", new CUI(this),"text/plain;charset=utf-8","*/*");
-        
-        ///////////////////////  
+
+        route(env, GET, "/gui/clear", new HttpCode<AuthzTrans, Void>(null, "Clear"){
+            @Override
+            public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
+                trans.clearCache();
+                Cookie cookies[] = req.getCookies();
+                if(cookies!=null) {
+                    for(Cookie c : cookies) {
+                        if(c.getName().startsWith("aaf.gui.")) {
+                            c.setMaxAge(0);
+                            resp.addCookie(c);
+                        }
+                    }
+                }
+                resp.sendRedirect("/gui/home");
+            }
+        }, "text/plain;charset=utf-8","*/*");
+
+        ///////////////////////
         // WebContent Handler
         ///////////////////////
         CachingFileAccess<AuthzTrans> cfa = new CachingFileAccess<AuthzTrans>(env);
-        //route(env,GET,"/"+env.get(sThemeWebPath)+"/:key*", cfa);
         route(env,GET,"/theme/:key*", cfa);
         ///////////////////////
         aafCon = aafCon();
         lur = aafCon.newLur();
     }
-    
+
     public<T> RosettaDF<T> getDF(Class<T> cls) throws APIException {
         return Cmd.getDF(env,cls);
     }
-    
+
     public void writeError(AuthzTrans trans, Future<?> fp, HTMLGen hgen, int indent) {
         if (hgen!=null) {
             String msg = aafCon.readableErrMsg(fp);
@@ -230,9 +255,9 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
     }
 
     public<RET> RET cmClientAsUser(TaggedPrincipal p,Retryable<RET> retryable) throws APIException, LocatorException, CadiException  {
-            return cmCon.hman().best(new HTransferSS(p,app, aafCon.securityInfo()), retryable);
+            return cmCon.hman().best(new HTransferSS(p, APP, aafCon.securityInfo()), retryable);
     }
-    
+
     @Override
     public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException {
         try {
@@ -261,9 +286,13 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
             Log4JLogIt logIt = new Log4JLogIt(args, "gui");
             PropAccess propAccess = new PropAccess(logIt,args);
 
-            AAF_GUI service = new AAF_GUI(new AuthzEnv(propAccess));
-            JettyServiceStarter<AuthzEnv,AuthzTrans> jss = new JettyServiceStarter<AuthzEnv,AuthzTrans>(service);
-            jss.start();
+            try {
+                new JettyServiceStarter<AuthzEnv,AuthzTrans>(
+                    new AAF_GUI(new AuthzEnv(propAccess)),true)
+                        .start();
+            } catch (Exception e) {
+                propAccess.log(e);
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }