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.
- 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 ...
}
}