apart from this :(

when i use my application this will work:

   public boolean loggedInUserHasRole(String roleName) {
       if (SecurityContextHolder.getContext() != null) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
           if (auth != null) {
               UserDetails user = ((UserDetails) auth.getPrincipal());
               for (int i = 0; i < user.getAuthorities().length; i++) {
if (user.getAuthorities()[i].getAuthority().equals(roleName)) {
                       return true;
                   }
               }
           }
       }
       return false;
   }

but when i run my test this will fail:
               UserDetails user = ((UserDetails) auth.getPrincipal());
because user is a string and not a UserDetails object??

tibi

tibi wrote:
used this:
http://raibledesigns.com/downloads/appfuse/api/org/appfuse/service/UserSecurityAdviceTest.java.html

worked perfect...



tibi wrote:
thanks

tibi

Michael Horwitz wrote:


On 5/15/07, *tibi* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    thanks. so i will use the last one.

    can i test this method from a junit test? or an baseActionTest.
    and how can i login?

Yes, as long as you set up the ACEGI security context. See UserSecurityAdviceTest in the AppFuse source for an example of how this can be done. Mike.

    tibi

    Michael Horwitz wrote:
    > The first version is only usefull where you have access to the
    request
    > object. This is not always the case, particularly in the service
    > layer. The second version works throughout the call stack and
    returns
    > the logged in user as per ACEGI. As far as I know they should
    always
> return the same value, but there may be special circumstances where
    > this is not the case?
    >
    > Mike.
    >
    > On 5/15/07, *tibi* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> <mailto:
    [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
    >
    >     what is the difference between:
    >
    >     request.getRemoteUser()
    >
    >     and this
    >
    >        public String getLoggedInUserName() {
    >            if (SecurityContextHolder.getContext() != null) {
    >                Authentication auth =
    >     SecurityContextHolder.getContext().getAuthentication();
    >                if (auth != null) {
    >                    UserDetails user = ((UserDetails)
    auth.getPrincipal());
    >                    if (user != null) {
    >                        return user.getUsername();
    >                    }
    >                }
    >            }
    >            return null;
    >        }
    >
    >     i found both off them on the net ...
    >
    >     tibi
    >
    >     tibi wrote:
    >     > jep... as i understood it the method was already in.
    >     > the request.getRemoteUser works fine
    >     >
    >     > tibi
    >     >
    >     > Matt Raible wrote:
    >     >> The bug you reference was to add a convenience method to
    get the
> >> user's username. However, since it's easy enough to get with
    >     >> request.getRemoteUser(), I didn't add it.
    >     >>
    >     >> Does this answer your question?
    >     >>
    >     >> Matt
    >     >>
    >     >>
    >     >> On 5/8/07, tibi <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
    >     >>>
    >     >>> i just stumlbed upon this bug report:
    >     >>> http://issues.appfuse.org/browse/APF-650
    <http://issues.appfuse.org/browse/APF-650>
    >     >>>
    >     >>> as i understand it the first user is saying that
    >     >>> the method setCurrentUser should be reneamed to
    setCurrentUserName
    >     >>> because you are not setting the user but only his or her
    name.
    >     >>> and the getCurrentUser should be changed to
    getCurrentUserName
    >     etc...
    >     >>>
    >     >>> but i think at this moment the methods are gone all to
    getter
    >     right?
    >     >>>
    >     >>> and super.getRequest().getRemoteUser()  should be used?
    >     >>>
    >     >>> tibi
    >     >>>
    >     >>>
> ---------------------------------------------------------------------
    >     >>> To unsubscribe, e-mail:
    [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     >>> For additional commands, e-mail:
    >     [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     >>>
    >     >>>
    >     >>
    >     >>
    >     >
    >     >
> ---------------------------------------------------------------------
    >     > To unsubscribe, e-mail:
    [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     > For additional commands, e-mail:
    [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     >
    >     >
    >
> ---------------------------------------------------------------------
    >     To unsubscribe, e-mail:
    [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     For additional commands, e-mail:
    [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >
    >

---------------------------------------------------------------------
    To unsubscribe, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    For additional commands, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to