Yes, that's correct. I am using http basic authentication, which means that
when a page get's rendered, the user is already authenticated and there is
no possiblity to re-show the login screen again, because the browser caches
the username and password.

I am not able to use form based login, because there are many applications
accessing my page, not only browsers, and it's a lot easier for applications
if there is http basic authentication instead of form based
authentication... (Just think about download managers)...

-----Ursprüngliche Nachricht-----
Von: Jeff Bischoff [mailto:[EMAIL PROTECTED] 
Gesendet: Montag, 6. November 2006 20:45
An: MyFaces Discussion
Betreff: Re: AW: [O/T] JSF Best Practices for Authentication/Authorization

Dominik,

 > For being able to protect pages from being accessed by unallowed 
users, I am
 > using two mechanisms:
 >  --> First of all, to prevent some elements on the page from being 
rendered
 > and therefore accessible, I am using JSF Security framework
 > (http://jsf-security.sourceforge.net/).
 >  --> To prevent properties of my bean to be accessed by someone who 
is not
 > allowed to do so, I am using self defined annotations... this looks
 > something like this:

So if I understand you right -  you are hiding various page elements, 
and protecting method access... but not hiding entire pages? Meaning, 
there is no situation in your app where they request a certain resource 
and you simply redirect them to a login screen?

Regards,

Jeff Bischoff
Kenneth L Kurz & Associates, Inc.

Bieringer Dominik wrote:
> Hi Jeff,
> 
> I want to share the way I am handling security in my application. (I am
> pretty new to JSF, just started my project some month ago and there is so
> much left for me to be learned in JSF ;D).
> 
> There are some requirements in my application:
>   --> There are 4 supported roles (customers, internal, development,
admin)
>   --> Users/passwords roles are stored in LDAP and DB.
>   --> You can think of my application as a platform for stored files, each
> file having individual access rights. So there are not only pages which
have
> to be protected, but also different content has to be shown on some pages
> depending on the logged in user.
> 
> I tried to separate two things in my application:
>   --> The authentication itself (which is done by the container, in my
case
> tomcat)
>   --> Protection of pages, files, etc... (which is done by my application)
> 
> 
> The first part: Authentication itself
> -------------------------------------
> The authentication is using a tomcat realm, which I've implemented on my
own
> (Because it has to be a hybrid realm (Database and LDAP)). The realm is
> returning one of the four roles mentioned above. User's having no role,
are
> not allowed to access any page.
> 
> Protection of resources in my application
> -----------------------------------------
> For being able to protect pages from being accessed by unallowed users, I
am
> using two mechanisms:
>  --> First of all, to prevent some elements on the page from being
rendered
> and therefore accessible, I am using JSF Security framework
> (http://jsf-security.sourceforge.net/).
>  --> To prevent properties of my bean to be accessed by someone who is not
> allowed to do so, I am using self defined annotations... this looks
> something like this:
> 
> @SecurityGuard(TypRoles.ADMIN)
> public AdminBean getAdminBean()
> {
>       JsfSecurityManager.getCurrentInstance().check();
> }
> 
> I am using my security guards not only in JSF, but also in an AXIS web
> application which provides web services and also in another web app, which
> provides the files stored on my server for the update mechanism used by
> eclipse.
> 
> So there are several implementations of the SecurityManager, which
provides
> abstract access to the container managed properties like logged in user,
and
> the associated roles.
> 
> That way it's not possible to access any methods or properties even if the
> security provided by JSF security framework is broken.
> 
> The JsfSecurityManager, which is a subclass of SecurityManager (A self
> defined class too), provides access to some other useful classes for
> permission checks, like a class called PermissionCheckerPackage, which
get's
> initialized by the SecurityManager with crucial information, like the
logged
> in user and his roles. With the PermissionCheckerPackage I am able to
check
> whether the logged in user is allowed to access files or not.
> 
> The JsfSecurityManager is used in ServletFilters (or in servlets) too, for
> example I've a ServletFilter for file downloads, which calls the
> JsfSecurityManager too.
> 
> 
> 
> Mhm.. that's what I've done for providing security in my application. I
> would like to hear what you think about that... Maybe you have some good
> comments which show me some possibilities for my future projects.
> 
> Thx,
> Dominik
> 
> -----Ursprüngliche Nachricht-----
> Von: Jeff Bischoff [mailto:[EMAIL PROTECTED] 
> Gesendet: Freitag, 3. November 2006 22:20
> An: MyFaces Discussion
> Betreff: Re: [O/T] JSF Best Practices for Authentication/Authorization
> 
> As for my specific requirements:
> 
> I have a simple intranet application. There is a public (no auth) 
> section, and a secure section for logged-in users. My main requirement 
> is simple. I want to force the users to authenticate (log in) before 
> they access the restricted portion of the application. View paths to 
> this portion are predictable (i.e. /public/* vs /system/*). Desired 
> authorization scheme will be rather simple (e.g. admins, users, 
> unauthenticated). I may want control-level access controls later, but I 
> feel that a good approach to page-level authorization is the most 
> important goal here.
> 
> It almost sounds like container-managed security would be sufficient for 
> my needs. However, the documentation from my container (JBoss) seems 
> overly detailed and complex - I couldn't even tell when they were 
> talking about JAAS rather than container-managed security. Is this 
> overkill for me, or am I seeing more complexity than there has to be? 
> I'm just not sure yet...
> 
> Thanks guys for your time, thoughts, and opinions...
> 
> Regards,
> 
> Jeff Bischoff
> Kenneth L Kurz & Associates, Inc.
> 
> Jeff Bischoff wrote:
>> Greetings Colleagues,
>>
>> I have often wondered what the majority of you are using for 
>> authentication and authorization in your non-public websites. Over the 
>> last year on this mailing list, I have seen bits and scraps of 
>> discussion on this topic. Most often, I hear mention of solutions like 
>> container-managed security and phase listeners. Sometimes custom 
>> navigation-handlers or servlet filters get mentioned too. Cant' say I've 
>> quite seen evidence of any consensus on which of these is preferred, so 
>> I'm interested to hear your thoughts.
>>
>> I have come across this article [1] which offers an approach (and some 
>> source code) to authorization in JSF. What are your opinions on this 
>> approach? Would you consider this and similar approaches to be best 
>> practice? What other alternatives can you recommend (from experience)?
>>
>> I will post my specific requirements for my security search as a reply 
>> to this post, so as not to narrow the overall discussion.
>>
>> [1] http://java.sys-con.com/read/250254_1.htm
>>
>> Regards,
>>
>> Jeff Bischoff
>> Kenneth L Kurz & Associates, Inc.
>>
>>
>>
>>
>>
> 
> 
> 
> 
> 


Reply via email to