cancel
Showing results for 
Search instead for 
Did you mean: 

Denegar el acceso desde java backed webscript

fstnboy
Champ on-the-rise
Champ on-the-rise
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?
1 REPLY 1

fstnboy
Champ on-the-rise
Champ on-the-rise
Ya se porque no me devuelve el DENIED…. El GROUP_EVERYONE tiene permiso de Consumidor, por eso me devuelve el ALLOWED. Aun asi, he cambiado el AccessDecisionManager a UnanimousBased, y me sigue devolviendo Allowed…. Tendre que crear un Voter personalizado??