AnsweredAssumed Answered

Denegar el acceso desde java backed webscript

Question asked by fstnboy on Jan 29, 2010
Latest reply on Jan 29, 2010 by fstnboy
Buenas a todos,

Vengo con una nueva duda que me trae loco…

El cliente para el que estoy trabajando quiere de alguna forma denegar el acceso a un usuario/grupo para un nodo dado. Para ello he creado un webscript y denegado el acceso siguiendo la clase test PermissionServiceTest. La cosa es que al depurar la clase test todo va como la seda (denega el acceso, se autentica como el usuario denegado y comprueba si tiene permisos y esto le da DENIED). Pero cuando en mi webscript hago lo mismo, puedo ver que existe un permiso DENIED, pero al llamar al metodo hasPermission del permissionService me devuelve ALLOWED! Por cierto, tambien voy a cambiar el AccessDecisionManager para que en vez de tirar del AffirmativeBased tire del UnanimousBased asi un DENIED predominaria sobre un ALLOWED…



      SimplePermissionEntry denyRead = new SimplePermissionEntry(nodeRef, permissionModelDAO.getPermissionReference(null, PermissionService.READ), authority, AccessStatus.DENIED);
      
      permissionService.setPermission(denyRead);
      
      serviceRegistry.getAuthenticationService().authenticate(authority, new char[]{'l', 'o', 'q', 'u', 'e', 's', 'e', 'a'});
      serviceRegistry.getAuthenticationService().getCurrentUserName();
      
      if(permissionService.hasPermission(nodeRef, permissionModelDAO.getPermissionReference(null, PermissionService.READ)) == AccessStatus.DENIED)
      {
         if(logger.isDebugEnabled())
                                 logger.debug("Genial!");
      }
      permissions = permissionService.getAllSetPermissions(nodeRef);
      

Ideas?

Outcomes