Segurança do Web UI Framework - Implementando Autorização

Quando implementar a autorização, primeiro você deverá decidir se deseja customizar ou usar a implementação padrão da autorização fornecida pelo aplicativo.

Você tem as opções a seguir:
  • A implementação padrão.

    Para usar esta implementação, apenas instale o aplicativo.

  • Uma implementação customizada sem a implementação padrão.
  • Uma implementação customizada da implementação padrão.

IBM® recomenda que as permissões para usuários sejam armazenadas em cache.

Customizando a Autorização

O mecanismo de autorização customizada para o aplicativo consiste na classe AuthorizationProvider que implementa a interface ISCUIAuthorizationProvider e ResourcePermission que implementa a interface ISCUIResourcePermission. O ResourcePermission é retornado pela classe AuthorizationProvider após a autorização. AuthorizationProvider é conectado usando o parâmetro de contexto no web.xml, conforme mostrado no exemplo a seguir:

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

É possível gerar o código de permissão usando o modelo de permissão de recurso do Code Template Generator.

A seguir, é mostrado um exemplo de um AuthorizationProvider customizaso que usa o provedor especificado no exemplo de 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	     ...     
	   }
}