AT&T 2.0.19 Code drop, stage 4
[aaf/authz.git] / authz-gui / src / main / java / com / att / authz / cui / CUI.java
1 /*******************************************************************************
2  * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
3  *******************************************************************************/
4 package com.att.authz.cui;
5
6 import java.io.PrintWriter;
7 import java.security.Principal;
8
9 import javax.servlet.ServletInputStream;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 import com.att.authz.env.AuthzTrans;
14 import com.att.authz.gui.AuthGUI;
15 import org.onap.aaf.cadi.config.Config;
16 import org.onap.aaf.cadi.http.HTransferSS;
17 import com.att.cmd.AAFcli;
18 import com.att.cssa.rserv.HttpCode;
19
20 public class CUI extends HttpCode<AuthzTrans, Void> {
21         private final AuthGUI gui;
22         public CUI(AuthGUI gui) {
23                 super(null,"Command Line");
24                 this.gui = gui;
25         }
26
27         @Override
28         public void handle(AuthzTrans trans, HttpServletRequest req,HttpServletResponse resp) throws Exception {
29                 ServletInputStream isr = req.getInputStream();
30                 PrintWriter pw = resp.getWriter();
31                 int c;
32                 StringBuilder cmd = new StringBuilder();
33
34                 while((c=isr.read())>=0) {
35                         cmd.append((char)c);
36                 }
37
38                 Principal p = trans.getUserPrincipal();
39                 trans.env().setProperty(Config.AAF_DEFAULT_REALM, trans.env().getProperty(Config.AAF_DEFAULT_REALM,Config.getDefaultRealm()));
40                 AAFcli aafcli = new AAFcli(trans.env(), pw, 
41                                 gui.aafCon.hman(), 
42                                 gui.aafCon.securityInfo(), new HTransferSS(p,AuthGUI.app, 
43                                                 gui.aafCon.securityInfo()));
44         
45                 aafcli.verbose(false);
46                 aafcli.gui(true);
47                 String cmdStr = cmd.toString();
48                 if (!cmdStr.contains("--help")) {
49                         cmdStr = cmdStr.replaceAll("help", "--help");
50                 }
51                 if (!cmdStr.contains("--version")) {
52                         cmdStr = cmdStr.replaceAll("version", "--version");
53                 }
54                 try {
55                         aafcli.eval(cmdStr);
56                         pw.flush();
57                 } catch (Exception e) {
58                         pw.flush();
59                         pw.println(e.getMessage());
60                 } finally {
61                         aafcli.close();
62                 }
63                 
64         }
65 }