import java.io.*; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.servlet.*; import javax.servlet.http.*; public class AkentiAccess extends HttpServlet { private String DNameStr, CNameStr, OUNameStr, ONameStr, CountryStr, ResourceStr, ConfFileStr, LocalResourceRootStr, cmd, action; boolean AkentiAccessType = false; static final String AkentiImage = "Akenti.home.jpeg"; public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // first, set the "content type" header of the response res.setContentType("text/html"); //Get the response's PrintWriter to return text to the client. PrintWriter toClient = res.getWriter(); CNameStr = req.getParameter("CName"); OUNameStr = req.getParameter("OUName"); ONameStr = req.getParameter("OName"); CountryStr = req.getParameter("Country"); ResourceStr = req.getParameter("Resource"); ConfFileStr = req.getParameter("ConfFile"); LocalResourceRootStr = req.getParameter("LocalResourceRoot"); makingandexecutingScript(); AkentiAccessCheck(); AkentiResultDelete(); toClient.println(""); toClient.println(""); toClient.println("
"); toClient.println(""); toClient.println("
"); toClient.println("

The List of your information

"); toClient.println("Common Name : "+CNameStr+"
"); toClient.println("Organization Unit : "+OUNameStr+"
"); toClient.println("Organization : "+ONameStr+"
"); toClient.println("Country : "+CountryStr+"
"); toClient.println("Resource : "+ResourceStr+"
"); toClient.println("ConfFile : "+ConfFileStr+"
"); toClient.println("LocalResourceRoot : "+LocalResourceRootStr+"
"); toClient.println("Allowed Action : "+""+action+""+"

"); toClient.println("

"); if (AkentiAccessType) { toClient.println("

Accessed!!!

"); toClient.println("This user has access rights"+"
"); } else { toClient.println("

Denied!!!

"); toClient.println("This user can not access this resource"+"
"); } toClient.println("

"); toClient.println("Try it again......"); toClient.println(" Restart "); toClient.println("

"); toClient.println(""); toClient.println(""); toClient.close(); } public void makingandexecutingScript() { String dquote = "\""; String CNheader = "/CN="; String OUheader = "/OU="; String Oheader = "/O="; String Cheader = "/C="; CNameStr = CNheader.concat(CNameStr); OUNameStr = OUheader.concat(OUNameStr); ONameStr = Oheader.concat(ONameStr); CountryStr = Cheader.concat(CountryStr); DNameStr = CountryStr+ONameStr+OUNameStr+CNameStr; DNameStr = dquote.concat(DNameStr); DNameStr = DNameStr.concat(dquote); ResourceStr = dquote.concat(ResourceStr); ResourceStr = ResourceStr.concat(dquote); cmd = "/npac/home/webflow/Akenti/akenti-docs/cgi-bin/akenti_chk_acc -t W -n "+DNameStr+" -r "+ResourceStr+" -f "+ConfFileStr+" -d "+LocalResourceRootStr+" > /npac/home/webflow/Akenti/akenti-docs/cgi-bin/akentiresult"; String Akentiscript = "/npac/home/webflow/Akenti/akenti-docs/cgi-bin/akentiscript"; String FileContents = new String("#!/bin/sh -f\n"); FileContents += cmd+"\n"; int scriptsize = FileContents.length(); byte[] scriptbuf = new byte[scriptsize]; FileContents.getBytes(0, scriptsize, scriptbuf, 0); File to_file = new File(Akentiscript); FileOutputStream to = null; try{ to = new FileOutputStream(to_file); to.write(scriptbuf, 0, scriptsize); } catch(IOException exc){;} finally{ if(to != null) try{ to.close(); } catch(IOException exc) {;} } try{ Process AkentiEnv = Runtime.getRuntime().exec("chmod 777 "+Akentiscript); AkentiEnv.waitFor(); Process AkentiExec = Runtime.getRuntime().exec(Akentiscript); AkentiExec.waitFor(); } catch (Exception ex) { // toClient.println("Error: " + ex.toString()+"
"); } } public void AkentiAccessCheck() { File f = new File("/npac/home/webflow/Akenti/akenti-docs/cgi-bin/akentiresult"); int size = (int) f.length(); int bytes_read = 0; String tem_data; try{ FileInputStream in = new FileInputStream(f); byte[] data = new byte[size]; while(bytes_read < size) bytes_read += in.read(data, bytes_read, size-bytes_read); tem_data = new String(data); int indexNum = tem_data.indexOf("Allowed actions:"); action = tem_data.substring(indexNum+16); if (action.startsWith("none")) AkentiAccessType = false; else if (action.startsWith("read") || action.startsWith("execute") || action.startsWith("write") || action.startsWith("add") || action.startsWith("delete")) AkentiAccessType = true; else AkentiAccessType = false; } catch (IOException e) { // System.err.println("Error: " + e.toString()); } } public void AkentiResultDelete() { String Akentiresult = "/npac/home/webflow/Akenti/akenti-docs/cgi-bin/akentiresult"; String Akentiscript = "/npac/home/webflow/Akenti/akenti-docs/cgi-bin/akentiscript"; try{ Process AkentiDelete = Runtime.getRuntime().exec("rm -r "+Akentiresult); AkentiDelete.waitFor(); Process AkentiSDelete = Runtime.getRuntime().exec("rm -r "+Akentiscript); AkentiDelete.waitFor(); } catch (Exception ex1) { //System.err.println("Error: " + ex1.toString()); } } public String getServletInfo() { return "Checking access as Akenti Security Servlet"; } }