Re: Limits on the size of the web.xml file?

2001-09-05 Thread Jim Cheesman

At 05:57 PM 04/09/01, you wrote:


On Tue, 4 Sep 2001, Jim Cheesman wrote:

 
  RTFAPI ;)
 

This acronym will *definitely* come in handy!  :-)


Something good comes out of my ignorance, then...





--

   *   Jim Cheesman   *
 Trabajo: 
[EMAIL PROTECTED] - (34)(91) 724 9200 x 2360
  What is the 
probability that something
will happen according to the 
odds?





Re: Limits on the size of the web.xml file?

2001-09-05 Thread Dmitri Colebatch

Craig,

I would have thought RTFS would have been more to your liking... given
your regular points to the spec (o:

On Tue, 4 Sep 2001, Craig R. McClanahan wrote:
 
 
 On Tue, 4 Sep 2001, Jim Cheesman wrote:
 
 
  RTFAPI ;)
 
 
 This acronym will *definitely* come in handy!  :-)
 
 Craig
 
 




Re: Limits on the size of the web.xml file?

2001-09-05 Thread Craig R. McClanahan



On Wed, 5 Sep 2001, Dmitri Colebatch wrote:

 Date: Wed, 5 Sep 2001 08:21:44 +1000
 From: Dmitri Colebatch [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Subject: Re: Limits on the size of the web.xml file?

 Craig,

 I would have thought RTFS would have been more to your liking... given
 your regular points to the spec (o:


Yep ... that one too!  S, of course, meaning the servlet and JSP
specifications.

http://java.sun.com/products/servlet/download.html:-)
http://java.sun.com/products/jsp/download.html:-)

 On Tue, 4 Sep 2001, Craig R. McClanahan wrote:
 
 
  On Tue, 4 Sep 2001, Jim Cheesman wrote:
 
  
   RTFAPI ;)
  
 
  This acronym will *definitely* come in handy!  :-)
 
  Craig
 
 






Re: Limits on the size of the web.xml file?

2001-09-04 Thread Jim Cheesman



Consider that you might have the mailboxes for a particular user defined
in a database table called mailboxes, with columns username and
mailboxname.  It would be easy to construct an SQL statement like this:

   select mailboxname from mailboxes
 where username = xxx

and replace xxx by the value returned from request.getRemoteUser().  This
would allow the user access *only* to his or her own mailboxes.

Assuming, of course, that your users are using the same machine / login id 
- not necessarily the case in, for example, a university with shared 
machines...


Still, you're going to need to do something like that.





--

   *   Jim Cheesman   *
 Trabajo: 
[EMAIL PROTECTED] - (34)(91) 724 9200 x 2360
   Evil is 
not all bad.





Re: Limits on the size of the web.xml file?

2001-09-04 Thread Craig R. McClanahan



On Tue, 4 Sep 2001, Jim Cheesman wrote:


 RTFAPI ;)


This acronym will *definitely* come in handy!  :-)

Craig




Re: Limits on the size of the web.xml file?

2001-09-03 Thread Roland

 Sounds like a redesign is more appropriate.

 Memory issues aside, have you considered the fact that using individual
 security constraints for each and every user means that you have to
 restart the entire app every time you add a new user?  Or, that every time
 you add a user and restart, the restart time gets longer and longer?

Thats a problem!

 Use application specific logic to ensure that a particular user can only
 see things that are relevant to them (i.e.  their own mailbox in a
 WebMail scenario).

That was my original design idea. BUT, in this case I don't know how to
prevent someone to see the data from other users. How can I stop someone
from trying to access the mail from someone else? Supposing that all
standard users will have the same role, the security will allow him to see
all directories.

A question besides here, using JDBC realms is it possible to assign mutliple
roles to one user? How do I do it? Do I have to put several entries in the
user_roles table? One line for each role of the user?

Thanks in advance...





Re: Limits on the size of the web.xml file?

2001-09-03 Thread Craig R. McClanahan



On Mon, 3 Sep 2001, Roland wrote:

 Date: Mon, 3 Sep 2001 16:19:48 -0300
 From: Roland [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Subject: Re: Limits on the size of the web.xml file?

  Sounds like a redesign is more appropriate.
 
  Memory issues aside, have you considered the fact that using individual
  security constraints for each and every user means that you have to
  restart the entire app every time you add a new user?  Or, that every time
  you add a user and restart, the restart time gets longer and longer?

 Thats a problem!

  Use application specific logic to ensure that a particular user can only
  see things that are relevant to them (i.e.  their own mailbox in a
  WebMail scenario).

 That was my original design idea. BUT, in this case I don't know how to
 prevent someone to see the data from other users. How can I stop someone
 from trying to access the mail from someone else? Supposing that all
 standard users will have the same role, the security will allow him to see
 all directories.


The details *vastly* depend on how your app is put together, but it isn't
all that complicated to figure out.

Consider that you might have the mailboxes for a particular user defined
in a database table called mailboxes, with columns username and
mailboxname.  It would be easy to construct an SQL statement like this:

  select mailboxname from mailboxes
where username = xxx

and replace xxx by the value returned from request.getRemoteUser().  This
would allow the user access *only* to his or her own mailboxes.

I'm assuming that you are *not* allowing users to upload their own
servlets or JSP pages, so they can only access what your app allows.  If
this is not true, all bets are off (and I wouldn't ever trust your server
with my mail messages anyway :-).

 A question besides here, using JDBC realms is it possible to assign mutliple
 roles to one user? How do I do it? Do I have to put several entries in the
 user_roles table? One line for each role of the user?

Yep.  A user can have as many roles as you want to assign them.


 Thanks in advance...



Craig





Re: Limits on the size of the web.xml file?

2001-09-03 Thread Roland

 The details *vastly* depend on how your app is put together, but it isn't
 all that complicated to figure out.

 Consider that you might have the mailboxes for a particular user defined
 in a database table called mailboxes, with columns username and
 mailboxname.  It would be easy to construct an SQL statement like this:

   select mailboxname from mailboxes
 where username = xxx

Ok, having Data in the database is fine. But what if we also have image
data? We will store Charts and things like that. I think it would be easier
to create a directory for each user(maybe I'm wrong). It is possible to
store images in a mysql database but I think its not as easy as text data.
And then we will have to create a HTML page from that image data and send it
to the user.
To put the question more simply: is it possible to create a directory for
each user and prevent other users from accessing it? If every standard user
has the same role how can this be done? I had the idea of letting no one
acess the user directories. Then the jsp pages would take the info from the
user directories according to the user that is logged in. That would bring
up the question how can I make the jsp page access directories that are not
accessible to the user. I posted this question in the newsgroup but had no
good answer. One guy made the suggestion to read the file with
FileInputStreams and pass it on to the browser, but I think this would be
very hard to implement.

 and replace xxx by the value returned from request.getRemoteUser().  This
 would allow the user access *only* to his or her own mailboxes.

 I'm assuming that you are *not* allowing users to upload their own
 servlets or JSP pages, so they can only access what your app allows.  If
 this is not true, all bets are off (and I wouldn't ever trust your server
 with my mail messages anyway :-).

NO, of course not :)




Re: Limits on the size of the web.xml file?

2001-09-03 Thread Craig R. McClanahan



On Mon, 3 Sep 2001, Roland wrote:

 Date: Mon, 3 Sep 2001 16:37:17 -0300
 From: Roland [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Subject: Re: Limits on the size of the web.xml file?

  The details *vastly* depend on how your app is put together, but it isn't
  all that complicated to figure out.
 
  Consider that you might have the mailboxes for a particular user defined
  in a database table called mailboxes, with columns username and
  mailboxname.  It would be easy to construct an SQL statement like this:
 
select mailboxname from mailboxes
  where username = xxx

 Ok, having Data in the database is fine. But what if we also have image
 data? We will store Charts and things like that. I think it would be easier
 to create a directory for each user(maybe I'm wrong). It is possible to
 store images in a mysql database but I think its not as easy as text data.
 And then we will have to create a HTML page from that image data and send it
 to the user.

Storing binary data in the database isn't all that hard.  Then, all you'd
need to do is create a servlet mapped to *.gif, *.jpg, and so on that
did the user identity check before serving the contents (in binary).  The
same basic principle would work for data stored in per-user directories.
In essence, you're replacing the default file-serving servlet that comes
with Tomcat.

If you run under Tomcat 4 (which supports Servlet 2.3), you also have
another choice -- you can implement your custom authentication checker as
a Filter instead of a Servlet.  That way, you can apply your own custom
check onto any path, without having to modify or replace the file-serving
servlet that comes with Tomcat.

Craig





Re: Limits on the size of the web.xml file?

2001-09-03 Thread Craig R. McClanahan



On Mon, 3 Sep 2001, Roland wrote:

 Date: Mon, 3 Sep 2001 15:15:36 -0300
 From: Roland [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Subject: Limits on the size of the web.xml file?

 Hello is there a limit to the size of the web.xml file?

There are no predefined limits -- the only limits will be indirect ones
based on how much JVM heap space it takes to represent the security
constraints, servlet mappings, and so on internal to the container.

 This is because if
 we want to have a large user database with say 500 users, and make a
 separate security constraint for each user to protect his directories from
 the other users we will have quite a large web.xml file.
 Each security constraint has 602 bytes(characters), that would make 500*602
 = 301000 bytes = 300 Kb(for 500 users).


From an XML parsing perspective, or an in-memory perspective, 300kb isn't
much (I've run some large scale apps on gigabyte-memory machines :-).  But
...

 Any problems with that?

 What about the really large stuff(fortunately not our case)? If you would
 make a public Webmail and have say 1 000 000(one million) users?
 That would make 602 Million bytes = 602 Megabyte web.xml file. Quite large,
 isn't it ? :)))


Sounds like a redesign is more appropriate.

Memory issues aside, have you considered the fact that using individual
security constraints for each and every user means that you have to
restart the entire app every time you add a new user?  Or, that every time
you add a user and restart, the restart time gets longer and longer?

I suggest that you use security constraints to ensure things like there
must be a logged on user.  You can also use roles to identify whether the
particular user is ordinary, or has administrative capabilities as well,
by defining a few roles.

Use application specific logic to ensure that a particular user can only
see things that are relevant to them (i.e.  their own mailbox in a
WebMail scenario).

 Thanks Roland




Craig McClanahan





Re: Limits on the size of the web.xml file?

2001-09-03 Thread Craig R. McClanahan



On Mon, 3 Sep 2001, Calvin Lau wrote:

 Date: Mon, 03 Sep 2001 14:23:19 -0700
 From: Calvin Lau [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Subject: Re: Limits on the size of the web.xml file?

 My web.xml file worked fine in Tomcat3.2.1 as did the Context/Context that
 I added to server.xml.  Are there differences in the DTD I'm not aware of?


There are two differences that may or may not be relevant to a particular
web app:

* Tomcat 4 does a *validating* XML parse of the web.xml file, so it will
  choke on things like elements not being in the order required by the
  DTD.  (Normally, though, you get a more intelligible error message than
  this one.  Tomcat 3.x did *not* do a validating parse, so the XML
  checking was not as rigorous.

* Tomcat 4 uses JAXP/1.1 to parse web.xml files, where Tomcat 3.2 uses
  JAXP/1.0.  There might have been changes in what the underlying parsers
  accept.

The web.xml DTD for Servlet 2.3 is a proper superset of the DTD for
Servlet 2.2.  In addition, a 2.3 container (like Tomcat 4) is required to
accept a valid web.xml file based on the Servlet 2.2 or 2.3 DTDs.  But, it
does have to be valid (in the XML sense) for this portability to be
achieved -- Tomcat 3.x didn't require this, so it accepted some incorrect
web.xml files.

Craig



 Calvin

 Craig R. McClanahan wrote:

  On Mon, 3 Sep 2001, Roland wrote:
 
   Date: Mon, 3 Sep 2001 16:37:17 -0300
   From: Roland [EMAIL PROTECTED]
   Reply-To: [EMAIL PROTECTED]
   To: [EMAIL PROTECTED]
   Subject: Re: Limits on the size of the web.xml file?
  
The details *vastly* depend on how your app is put together, but it isn't
all that complicated to figure out.
   
Consider that you might have the mailboxes for a particular user defined
in a database table called mailboxes, with columns username and
mailboxname.  It would be easy to construct an SQL statement like this:
   
  select mailboxname from mailboxes
where username = xxx
  
   Ok, having Data in the database is fine. But what if we also have image
   data? We will store Charts and things like that. I think it would be easier
   to create a directory for each user(maybe I'm wrong). It is possible to
   store images in a mysql database but I think its not as easy as text data.
   And then we will have to create a HTML page from that image data and send it
   to the user.
 
  Storing binary data in the database isn't all that hard.  Then, all you'd
  need to do is create a servlet mapped to *.gif, *.jpg, and so on that
  did the user identity check before serving the contents (in binary).  The
  same basic principle would work for data stored in per-user directories.
  In essence, you're replacing the default file-serving servlet that comes
  with Tomcat.
 
  If you run under Tomcat 4 (which supports Servlet 2.3), you also have
  another choice -- you can implement your custom authentication checker as
  a Filter instead of a Servlet.  That way, you can apply your own custom
  check onto any path, without having to modify or replace the file-serving
  servlet that comes with Tomcat.
 
  Craig