You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@beehive.apache.org by Adam Jenkins <ma...@adamjenkins.net> on 2005/09/17 21:02:54 UTC

show html conditionally based on login?

Hi Guys,

I'm having difficulty figuring out a way to conditionally show anchors
and other html artifacts based on whether a user is logged in or not.
Is there an 'isLoggedIn' method anywhere accessible from a jsp?  I had a
look at the javadoc but couldn't track it down.

Cheers
Adam


Re: show html conditionally based on login?

Posted by Rich Feit <ri...@gmail.com>.
FYI, I've entered http://issues.apache.org/jira/browse/BEEHIVE-941 for this.

Rich Feit wrote:

>Hi Adam,
>
>If you're using container-managed login, something like this should work:
>   
>    <c:if test="${pageContext.request.userPrincipal != null}">
>        ...
>    </c:if>
>
>However, if you've overridden the default login behavior using your own
>LoginHandler, there isn't a very discoverable way to do this.  I think
>what we need are protected getUserPrincipal() and isUserInRole() on
>FlowController, which would be aware of the login-override mechanism. 
>In the meantime, you should be able to get what you need by passing the
>following value to your JSP as a page input (or exposing it however you
>normally expose data to your pages):
>
>    FlowControllerHandlerContext fcContext = new
>FlowControllerHandlerContext(getRequest(), getResponse(), this);
>    boolean loggedIn =
>(Handlers.get(getServletContext()).getLoginHandler().getUserPrincipal(fcContext)
>!= null);
>
>I'll open a bug on the missing API; meanwhile, if you have any
>problems/questions about this, let me know.
>
>Rich
>
>
>Adam Jenkins wrote:
>
>  
>
>>Hi Guys,
>>
>>I'm having difficulty figuring out a way to conditionally show anchors
>>and other html artifacts based on whether a user is logged in or not.
>>Is there an 'isLoggedIn' method anywhere accessible from a jsp?  I had a
>>look at the javadoc but couldn't track it down.
>>
>>Cheers
>>Adam
>>
>>
>> 
>>
>>    
>>
>
>  
>

Re: show html conditionally based on login?

Posted by Rich Feit <ri...@gmail.com>.
Hi Adam,

If you're using container-managed login, something like this should work:
   
    <c:if test="${pageContext.request.userPrincipal != null}">
        ...
    </c:if>

However, if you've overridden the default login behavior using your own
LoginHandler, there isn't a very discoverable way to do this.  I think
what we need are protected getUserPrincipal() and isUserInRole() on
FlowController, which would be aware of the login-override mechanism. 
In the meantime, you should be able to get what you need by passing the
following value to your JSP as a page input (or exposing it however you
normally expose data to your pages):

    FlowControllerHandlerContext fcContext = new
FlowControllerHandlerContext(getRequest(), getResponse(), this);
    boolean loggedIn =
(Handlers.get(getServletContext()).getLoginHandler().getUserPrincipal(fcContext)
!= null);

I'll open a bug on the missing API; meanwhile, if you have any
problems/questions about this, let me know.

Rich


Adam Jenkins wrote:

>Hi Guys,
>
>I'm having difficulty figuring out a way to conditionally show anchors
>and other html artifacts based on whether a user is logged in or not.
>Is there an 'isLoggedIn' method anywhere accessible from a jsp?  I had a
>look at the javadoc but couldn't track it down.
>
>Cheers
>Adam
>
>
>  
>