You should be able to setup remote debugging in your application and debug
tests or when it's running. I do this in IDEA by creating a "Remote"
configuration and setting my MAVEN_OPTS to "-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005". Then I run
"mvn whatever" and start the remote configuration in debug mode.

Matt

On Thu, Sep 17, 2009 at 10:41 AM, measwel <marek_karczew...@yahoo.com.au>wrote:

>
> I have extended appfuse roles. In the role table I have added a varcahar(3)
> specifying the sort of the role; currently I have "sys" for system roles
> (only to be added or removed by an system admin) and "usr" for user roles,
> that the user can add or remove himself.
>
> This is a nice feature; depending on the roles the user assignes to
> himself,
> the menus rendered are dynamic. It works fine when I test it in the life
> webapp, but it fails on SecurityAdviceTest. This is the code for testing if
> a user tries to add / remove a system role:
>
>          // get the list of roles the user currently has
>          Set<Role> currentRoles = new HashSet<Role>();
>          for (GrantedAuthority role : roles) {
>            currentRoles.add((Role) role);
>          }
>
>          Boolean modifySystemRole = false;
>
>          // determine the list of roles the user tries to add or remove
>          if (user.getRoles() != null) {
>
>            // check the list of roles the user wants to add
>            for (Object o : user.getRoles()) {   <-- THIS LOOP CAUSES THE
> ERROR
>              Role role = (Role) o;
>              // check if the user tries to add a system role - this is
> forbidden
>              if (role.getSort().equalsIgnoreCase("sys") &&
> !currentRoles.contains(role)) {
>                modifySystemRole = true;
>              }
>            }
>
>            // check the list of roles the user wants to remove
>            for (Object o : currentRoles) {   <-- THIS LOOP ALSO CAUSES THE
> ERROR
>              Role role = (Role) o;
>              // check if the user tries to remove a system role - this is
> forbidden
>              if (role.getSort().equalsIgnoreCase("sys") &&
> !user.getRoles().contains(role)) {
>                modifySystemRole = true;
>              }
>            }
>          }
>
>          // regular users aren't allowed to change system roles
>          if (modifySystemRole) {
>            log.warn("Access Denied: '" + currentUser.getUsername() + "'
> tried to change system role(s)!");
>            throw new AccessDeniedException(ACCESS_DENIED);
>          }
>
> As mentioned, this works fine in the life webapp. But the
> SecurityAdviceTest
> fails on 4 methods, the first one being:
>
>  @Test
>  public void testUpdateUserProfile() throws Exception {
>    UserManager userManager = makeInterceptedTarget();
>    final User user = new User("user");
>    user.setId(1L);
>    user.getRoles().add(new Role(Constants.USER_ROLE));
>
>    context.checking(new Expectations() {
>
>      {
>        one(userDao).saveUser(with(same(user)));
>      }
>    });
>
>    userManager.saveUser(user);  <-- THIS LINE PRODUCES A NULL POINTER
> EXCEPTION
>  }
>
> I have a feeling, the problem could be with the currentRoles set, but I am
> unable to attach the debugger to the webtests run, so I can not trace it.
>
> Please help me solve this. I think letting the user add / remove non
> critical roles and have his menu's rendered dynamically is a very nice
> addition to standard appfuse behavior. Once it works, I would like to add
> it
> as a proposed improvement to JIRA.
> --
> View this message in context:
> http://www.nabble.com/extension-of-appfuse-roles-not-testing-correctly-tp25491920s2369p25491920.html
> Sent from the AppFuse - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net
> For additional commands, e-mail: users-h...@appfuse.dev.java.net
>
>

Reply via email to