Para impedir el acceso a las aplicaciones a usuarios que no tengan UUID, tenemos dos formas diferentes:
- Una forma, es en la clase AbstractAuthenticatorAction, en el método hasApplicationSpecificPermission() (por defecto, devuelve true). Este método se puede sobrescribir en la clase AuthenticatorAction. Este método se ejecuta antes de que finalice el proceso de autenticación.
- La otra forma, que es posterior al proceso de autenticación, se usa el método checkUserData() de la clase UmuIdentityLoader.
Veamos ahora la configuración para la segunda forma. Lo primero que necesitamos es activar la configuración de la siguiente forma, solo tendremos que añadir en la clase AuthenticationManagerBean la siguiente factoría:
| Bloque de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
package es.um.atica.XXXX.security.authentication;
...
import org.jboss.seam.annotations.Factory;
import es.um.atica.seam.security.authentication.Constants;
@Name( "authenticationManagerBean" )
@Scope( SESSION )
@Install( precedence = FRAMEWORK )
@BypassInterceptors
@Startup
public class AuthenticationManagerBean extends AbstractAuthenticationManagerBean {
...
@Factory( Constants.AUTHORIZATION_EXCEPTION_ON_USER_WITHOUT_UUID_NAME)
public boolean isThrowAuthorizationExceptionOnUserWithoutUuid() {
return true;
}
...
} |