Nyxteridas Δημοσιεύτηκε Απρίλιος 22, 2009 #1 Κοινοποίηση Δημοσιεύτηκε Απρίλιος 22, 2009 Αναπτύσσω μια εφαρμογή με Java Servlets (με Apache Tomcat) και ψάχνω να βρω τρόπο να απαγορεύσω την πρόσβαση σε μη εξουσιοδοτημένους χρήστες σε κάποιους φακέλους. Συγκεκριμένα φτιάχνω ένα site στο οποίο κάνουν register οι χρήστες και έχουν τη δυνατότητα να κατεβάσουν κάποια αρχεία. Αυτό που θέλω να κάνω είναι να απαγορεύω με κάποιο τρόπο σε μη εγγεγραμμένα μέλη να κατεβάζουν αυτά τα αρχεία.Έχει κανείς κάτι υπόψιν του; Link to comment Share on other sites More sharing options...
orion Απρίλιος 22, 2009 #2 Κοινοποίηση Απρίλιος 22, 2009 Η "απαγορευση" σε ποιο επιπεδο θελεις να γινετε?Σε επιπεδο Apache μπορεις να το κανεις με το .htaccess στον καθε φακελο... Αν θες σε επιπεδο Java δεν μπορω να σε βοηθησω... Link to comment Share on other sites More sharing options...
Nyxteridas Απρίλιος 22, 2009 Author #3 Κοινοποίηση Απρίλιος 22, 2009 Η "απαγορευση" σε ποιο επιπεδο θελεις να γινετε?Σε επιπεδο Apache μπορεις να το κανεις με το .htaccess στον καθε φακελο... Αν θες σε επιπεδο Java δεν μπορω να σε βοηθησω...Ναι σε επίπεδο apache ξέρω, αλλά στον tomcat νομίζω πως δε λειτουργεί το .htaccess. Θα το τσεκάρω όμως Link to comment Share on other sites More sharing options...
Nyxteridas Απρίλιος 24, 2009 Author #4 Κοινοποίηση Απρίλιος 24, 2009 Το υλοποίησα με άλλο τρόπο τελικά. Για όποιον ενδιαφέρεται, παραθέτω τον κώδικαimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.Random;/** * * @author Nyxteridas */public class renameFolder extends HttpServlet{ protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //auto submit form res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.print("<HTML><HEAD><TITLE>Check</TITLE>"+ "</HEAD><BODY onLoad=document.form1.submit()>"+ "<FORM NAME=form1 METHOD=POST>"+ "</FORM></BODY></HTML>"); out.close(); } protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //create a random object for creating random names Random rn = new Random(); //define the root folder for the application File oldfolder = new File(getServletContext().getRealPath("/")); System.out.println("\n"+oldfolder.getName()); //list the contents of the root folder File[] filelist = oldfolder.listFiles(); //run the list of the files/folders of the root folder for (int i = 0; i < filelist.length; i++) { if (filelist[i].isDirectory()) { System.out.println(filelist[i].getName()); /* if the file is a directory, check if in the end of its name * exists the string "_one". If this statement is true, create * a random token with 13 characters, add in the end of this the * string "_one", and replace the old name with the new one * if the folder is not in use. If the folder is in use or * anoither error appears, print a message to the logfile.*/ if(filelist[i].getName().endsWith("_one")){ System.out.println("true"); String token = Long.toString(Math.abs(rn.nextLong()), 36) + "_one"; File oldname = new File(getServletContext().getRealPath("/")+File.separator+filelist[i].getName()); File newname = new File(getServletContext().getRealPath("/")+File.separator+token); boolean success = oldname.renameTo(newname); if (!success) { System.out.println("problem with renaming the folder"); } else{ res.setContentType("text/html"); res.setHeader("pragma", "no-cache"); PrintWriter out = res.getWriter(); out.print("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"+ "<html>"+ "<head>"+ "<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-7\" >"+ "<title>Folder Name</title>" + "</head>" + "<body>" + "<H1>Name of the folder: " + filelist[i].getName()+ "</H1>"+ "</body>" + "</html>"); } } //if the file is not a directory, print false else{ System.out.println("false"); } } } } } Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.