⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initservlet.java

📁 First of all, the Applet-phone is a SIP User-Agent with audio and text messaging capabilities. But
💻 JAVA
字号:
/* * InitServlet.java * * Created on June 30, 2003, 4:19 PM */package gov.nist.struts.webapp.servlet;import java.util.*;import java.io.File;import javax.servlet.*;import javax.servlet.http.*;import gov.nist.security.authentication.*;import gov.nist.security.bcs.Service;import gov.nist.security.permissions.parser.*;import gov.nist.struts.webapp.upload.ServiceTag;import gov.nist.struts.webapp.upload.UserServicesTag;import gov.nist.struts.webapp.upload.XMLServicesParser;import org.apache.log4j.PropertyConfigurator;/** Initializes the web appplication * @author DERUELLE Jean */public class InitServlet extends HttpServlet {        /**     * Initializes the servlet.     * @param config - The ServletConfig of the webapp     * @throws ServletException - a servletException can be thrown is something mess up     */    public void init(ServletConfig config) throws ServletException {        super.init(config);         initLog4J();        ServletContext applicationContext=this.getServletContext();        System.out.println("/***********Jain-Sip-Appserver Initialisation***************/");                //Parsing of the authentication file                String authenticationFile=config.getInitParameter("authentication-file");        XMLAuthenticationParser authenticationParser=new XMLAuthenticationParser(applicationContext.getRealPath(authenticationFile));        Vector users=authenticationParser.getUsersTagList();                //Parsing of the bcel permissions file                String permissionsFile=config.getInitParameter("permissions-config-file");        XMLPermissionsParser permissionsParser=new XMLPermissionsParser(applicationContext.getRealPath(permissionsFile));        Hashtable permissions=permissionsParser.getPermissionsTagList();        //Create the upload directory and put his location in the application context        String uploadDirectory=config.getInitParameter("upload-dir");        File upload=new File(uploadDirectory);        if(!upload.exists())            upload.mkdir();        applicationContext.setAttribute("uploadDirectory",uploadDirectory);                //Create the mapping file and put his location in the application context        String mappingFile=config.getInitParameter("upload-dir").concat(config.getInitParameter("upload-mapping-file"));        File mapping=new File(mappingFile);        try{            if(!mapping.exists())                mapping.createNewFile();                }        catch(Exception e){            e.printStackTrace();        }        applicationContext.setAttribute("mappingFile",mappingFile);             //we put the user's monitor in the session context        applicationContext.setAttribute("monitors",new Hashtable());        LoadServices();        //Put some attributes in the application context                applicationContext.setAttribute("users",users);		applicationContext.setAttribute("groups",authenticationParser.getGroupsList());                applicationContext.setAttribute("permissions",permissions);   		createDirectoryTree(users,config.getInitParameter("upload-dir"));        System.out.println("/***********Jain-Sip-Appserver Initialized***************/");            }               /** Creates the home directory tree of all the groups and users     * @param users - all the users having an account on the server     * @param uploadDirectory - the path to the directory where to create the directory tree     */    public void createDirectoryTree(Vector users,String uploadDirectory){        for(int i =0;i<users.size();i++){                UserTag user=(UserTag)users.get(i);                java.io.File groupDirectory =                 	new java.io.File( uploadDirectory.concat(user.getUserGroup()));                if( !groupDirectory.exists() )                        groupDirectory.mkdir();                                java.io.File policyFile=                 	new java.io.File(                 		uploadDirectory.concat(                			user.getUserGroup())+                			File.separatorChar+                			user.getUserGroup()+							".policy");                try{                    if( !policyFile.exists() ){                        policyFile.createNewFile();                        populatePolicyFile(                        	policyFile.getName(),                        	user.getUserGroup(),                        	uploadDirectory);                    }                }                catch(java.io.IOException ioe){                    ioe.printStackTrace();                }                                java.io.File userDirectory =                 	new java.io.File(                 		uploadDirectory.concat(                			user.getUserGroup())+File.separatorChar+user.getUserName());                if( !userDirectory.exists() )                        userDirectory.mkdir();                java.io.File dumpDirectory =                 	new java.io.File(                 		uploadDirectory.concat(                			user.getUserGroup())+                			File.separatorChar+                			user.getUserName()+                			File.separatorChar+							"dump"+							File.separatorChar);                if( !dumpDirectory.exists() )                        dumpDirectory.mkdir();				java.io.File tmpDirectory = 					new java.io.File( 						uploadDirectory.concat(							user.getUserGroup())+							File.separatorChar+							user.getUserName()+							File.separatorChar+							"tmp"+							File.separatorChar);				if( !tmpDirectory.exists() )						tmpDirectory.mkdir();        }    }    /**     * Method to initialize Log4J     */    public void initLog4J(){                String file = getInitParameter("log4j-init-file");        // if the log4j-init-file is not set, then no point in trying        if(file != null) {          PropertyConfigurator.configure(getServletContext().getRealPath(file));          System.out.println("log4j initialized");        }        else{            System.out.println("No log4j config file found or set");        }    }        /**     * Fill the policy file with some permissions depending on the belonging group of the user     * @param policyFilePath - the file path of the policy file we want to fill in     * @param userGroup - the belonging group of the user     * @param uploadDirectory - path where the services will be uploaded     */    public void populatePolicyFile(String policyFilePath,String userGroup,String uploadDirectory){        String policies[]= new String[3];        policies[0]="admin";        policies[1]="guest";        policies[2]="nist-sip-dev";        boolean isPredefinedPolicy=false;        policyFilePath=uploadDirectory.concat(userGroup)+File.separatorChar+policyFilePath;        try{                   java.io.File finalPolicyFile=new java.io.File(policyFilePath);            java.io.FileWriter writer=new java.io.FileWriter(finalPolicyFile);            java.io.PrintWriter out=new java.io.PrintWriter(writer);            //Read the policy file            java.io.File adminPolicyFile=new java.io.File(this.getServletContext().getRealPath("WEB-INF//"+policies[1]+".policy"));            if(userGroup.equals(policies[0])){                adminPolicyFile=new java.io.File(this.getServletContext().getRealPath("WEB-INF//"+policies[0]+".policy"));                        isPredefinedPolicy=true;            }            if(userGroup.equals(policies[2])){                adminPolicyFile=new java.io.File(this.getServletContext().getRealPath("WEB-INF//"+policies[2]+".policy"));                isPredefinedPolicy=true;            }                               java.io.FileReader reader=new java.io.FileReader(adminPolicyFile);            java.io.BufferedReader in=new java.io.BufferedReader(reader);                    String line=in.readLine();            while(line!=null){                                               out.println(line);                out.flush();                line=in.readLine();            }            out.close();            in.close();        }                    catch(java.io.IOException ioe){            ioe.printStackTrace();        }                                    }	/** load all the services		*/   private void LoadServices(){	   //Get the application context                                    	   ServletContext applicationContext=this.getServletContext();  	   //Get the user name from the session context	   //String userName=user.getUserName();	   //Get the password from the session context	   //String password=user.getUserPassword();	   //Get the mapping file name in the application context            	   String mappingFile=(String)applicationContext.getAttribute("mappingFile");    	   Hashtable monitors=(Hashtable)applicationContext.getAttribute("monitors");		   	   XMLServicesParser servicesParser=new XMLServicesParser(mappingFile);	   Vector usersServices=servicesParser.getUsersServicesTagList();	   if(usersServices!=null){		   for(int i=0;i<usersServices.size();i++){			   UserServicesTag userServicesTag=(UserServicesTag)usersServices.elementAt(i);            			   Vector fileServices=userServicesTag.getServices();			   //                			   for(int j=0;j<fileServices.size();j++){                				   ServiceTag serviceTag=(ServiceTag)fileServices.elementAt(j);				   String serviceName=serviceTag.getMainClass()+":"+userServicesTag.getUri();				   Service service=new Service(				   								serviceTag.getMainClass(),				   								serviceTag.getFileName(),				   								serviceTag.getToRewrite(),				   								serviceTag.getServiceType());				   //create a new service from the service Tag					                  					   				   //we add it to the set of user's services				   try{					   monitors.put(serviceName,service);                        				   }				   catch(NullPointerException nle){}			   }			  		   }                            	   }	   //we put the user's services in the session context	   applicationContext.setAttribute("monitors",monitors);   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -