实施授权
实现授权时,首先必须决定要定制还是使用应用程序提供的缺省授权实现。
您可以选择下列选项:
- 缺省实现。
要使用此实现,请仅安装应用程序。
- 没有缺省实施的定制实施。
- 缺省实施的定制实施。
IBM® 建议对用户的许可权进行高速缓存。
定制授权
应用程序的定制授权机制包含实现 ISCUIAuthorizationProvider 接口的 AuthorizationProvider 类和实现 ISCUIResourcePermission 接口的 ResourcePermission。 在授权之后,AuthorizationProvider 类将返回 ResourcePermission。 使用 web.xml 中的上下文参数插入 AuthorizationProvider,如以下示例所示:
<context-param>
<param-name>scui-authorization-provider</param-name>
<param-value>com.app.MyAppAuthorizationProvider</param-value>
</context-param>您可以使用代码模板生成器的资源许可权模板生成资源许可权代码。
以下显示了使用 web.xml 示例中所指定提供程序的定制 AuthorizationProvider 示例:
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 ...
}
}