此规则标记了使用容器管理的认证别名和组件管理的认证别名配置的连接工厂或数据源。
Liberty 中不支持组件管理的认证,必须使用容器管理或应用程序管理的认证。组件管理的认证别名是一组缺省凭证,任何应用程序都可以使用这些凭证访问数据源或连接工厂,以及在不指定自身凭证的情况下创建连接。
与使用组件管理的认证相比,根据每个应用程序来指定认证更加可取。
组件管理的认证不会限制可以访问数据源或连接工厂的人员,只会限制可以访问 JNDI 名称空间的人员。Liberty 具有允许将容器管理的认证用于直接查找的选项,这类似于 WebSphere Traditional 中组件管理的认证的运行方式。要启用此行为,请使用值 true 配置 enableContainerAuthForDirectLookups 连接管理器属性。
要使用容器管理的认证,通过使用在应用程序中将资源认证类型设置为容器的资源引用,来查找连接工厂或数据源。通过将 authenticationType 设置为 AuthenticationType.CONTAINER 以使用注释,或者通过将 res-auth 设置为 Container 以使用绑定文件或 server.xml 文件中的绑定覆盖,来完成此操作。然后,可以将具有相应凭证的 server.xml 文件中的 authData 别名在绑定中进行指定,或添加为缺省的容器管理认证别名,以在绑定中未指定别名的情况下使用。要将 authData 别名设置为缺省的容器管理认证别名,请将其指定为数据源或连接工厂中的 contianerAuthDataRef 属性。
在二进制扫描程序迁移的配置中,如果数据源或连接工厂没有指定的容器管理认证别名,那么会将组件管理认证别名指定为缺省容器管理认证别名。
还会配置 enableContainerAuthForDirectLookups 连接管理器属性,从而使 Liberty 中数据源或连接工厂的行为与 WebSphere Traditional 中相同。
要使用应用程序管理的认证,请在 getConnection、createConnection、createQueueConnection 或 createTopicConnection 方法调用中指定用户名和密码。