Seguridad de la infraestructura de interfaz de usuario web: implementación de la autorización

Al implementar la autorización, primero decida si va a personalizar o utilizar la implementación predeterminada de la autorización que proporciona la aplicación.

Están disponibles las opciones siguientes:
  • La implementación predeterminada.

    Para utilizar esta implementación, instale la aplicación.

  • Una implementación personalizada sin la implementación predeterminada.
  • Una implementación personalizada de la implementación predeterminada.

IBM® recomienda que los permisos para los usuarios se almacenen en la memoria caché.

Personalización de la autorización

El mecanismo para personalizar la autorización de la aplicación se compone de la clase AuthorizationProvider que implementa la interfaz ISCUIAuthorizationProvider y de ResourcePermission que implementa la interfaz ISCUIResourcePermission. La clase AuthorizationProvider devuelve ResourcePermission después de la autorización. AuthorizationProvider se activa mediante el parámetro de contexto en web.xml como se muestra en el ejemplo siguiente:

<context-param>	
   <param-name>scui-authorization-provider</param-name>
	  <param-value>com.app.MyAppAuthorizationProvider</param-value>
</context-param>

Puede generar código de permisos de recursos mediante la plantilla de permisos de recursos del Generador de plantillas de código.

A continuación se muestra un ejemplo de una autorización AuthorizationProvider personalizada que utiliza el proveedor especificado en el ejemplo web.xml:

public class MyAppAuthorizationProvider implements 
ISCUIAuthorizationProvider 
{
	  ....
	  public boolean hasPermission(SCUIContext uiContext, String resourceId)
	     {
	       ISCUIResourcePermission getPermission(uiContext, resourceId);
	       ....
	      	}
	  public ISCUIResourcePermission getPermission(SCUIContext uiContext,
String resourceId)
	    {
	      //authorize the user from the SCUISecurityContext
	      ...
	    }
	   public void init() 
	    {
	      // initialize the authorization mechanism.
	      ...
	     }
	   public void sessionDestroyed(HttpSessionEvent sessionEvent) 
	   {
	      //close the connection and release it back into the pool	     ...     
	   }
}