Jump to content



Apache Tomcat και "δικαιώματα"


Nyxteridas

Recommended Posts

Αναπτύσσω μια εφαρμογή με Java Servlets (με Apache Tomcat) και ψάχνω να βρω τρόπο να απαγορεύσω την πρόσβαση σε μη εξουσιοδοτημένους χρήστες σε κάποιους φακέλους. Συγκεκριμένα φτιάχνω ένα site στο οποίο κάνουν register οι χρήστες και έχουν τη δυνατότητα να κατεβάσουν κάποια αρχεία. Αυτό που θέλω να κάνω είναι να απαγορεύω με κάποιο τρόπο σε μη εγγεγραμμένα μέλη να κατεβάζουν αυτά τα αρχεία.

Έχει κανείς κάτι υπόψιν του;

Link to comment
Share on other sites

Η "απαγορευση" σε ποιο επιπεδο θελεις να γινετε?

Σε επιπεδο Apache μπορεις να το κανεις με το .htaccess στον καθε φακελο...

Αν θες σε επιπεδο Java δεν μπορω να σε βοηθησω...

Link to comment
Share on other sites

Η "απαγορευση" σε ποιο επιπεδο θελεις να γινετε?

Σε επιπεδο Apache μπορεις να το κανεις με το .htaccess στον καθε φακελο...

Αν θες σε επιπεδο Java δεν μπορω να σε βοηθησω...

Ναι σε επίπεδο apache ξέρω, αλλά στον tomcat νομίζω πως δε λειτουργεί το .htaccess. Θα το τσεκάρω όμως

Link to comment
Share on other sites

Το υλοποίησα με άλλο τρόπο τελικά. Για όποιον ενδιαφέρεται, παραθέτω τον κώδικα


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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.