传统平台

实施授权

实现授权时,首先必须决定要定制还是使用应用程序提供的缺省授权实现。

您可以选择下列选项:
  • 缺省实现。

    要使用此实现,请仅安装应用程序。

  • 没有缺省实施的定制实施。
  • 缺省实施的定制实施。

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