通过编辑配置,可使用 Liberty 的定制登录模块来配置 JAAS 配置 (system.WEB_INBOUND)。不必配置 JAAS,除非您想要定制 JAAS。
开始之前
有关配置服务器的底层过程的描述,及服务器配置特定方面的详细信息,请参阅手动管理 Liberty。
避免故障: 开发者工具使用 loginModuleRef 元素来创建对 JAAS 登录模块的引用。必须更改它,并使用 jaasLoginContextEntry 元素的 loginModuleRef 属性。在 Liberty 上配置应用程序的安全性时,可以参考 WASdev.net Web 站点上的若干个安全性配置示例。
过程
- 选择 JAAS 登录上下文条目,并单击添加,然后输入登录模块名称。 在此示例中,定制登录模块 myCustom 是在登录进程开始时添加。系统提供的登录模块(hashtable、userNameAndPassword、certificate 和 token)是必需的。
- 选择 JAAS 登录模块:myCustom 并通过输入标识和类名配置定制登录模块,然后单击添加按钮旁的箭头并选择全局元素以输入共享库信息。 在此示例中,对应于定制登录模块名称的标识为 myCustom。
- 在弹出窗口中输入共享库的标识,然后单击确定。 在此示例中,对应于共享库名称的标识为 customLoginLib。
- 配置共享库的名称和描述字段,然后单击添加按钮旁的箭头并选择子元素,以添加文件集引用作为子元素。
- 配置文件集。 单击基本目录字段中的浏览,并选择 JAR 文件所在的目录。然后,单击包含模式字段中的浏览,以选择内含定制登录模块实现的 JAR 文件。 在此示例中,定制登录模块实现 JAR 文件为 CustomLoginModule.jar 并且位于 ${server.config.dir} 目录下。
- 可选: 如果定制登录模块需要任何选项,那么可以右键单击 JAAS 登录模块,选择添加,然后选择登录模块选项。
- 保存配置。您会发现下列配置保存在 server.xml 文件中。
<jaasLoginContextEntry name="system.WEB_INBOUND" id="system.WEB_INBOUND">
<loginModuleRef>myCustom, hashtable, userNameAndPassword, certificate, token</loginModuleRef>
</jaasLoginContextEntry>
<jaasLoginModule className="com.sample.CustomLoginModule"
id="myCustom" libraryRef="customLoginLib">
</jaasLoginModule>
<library id="customLoginLib" name="customLoginLib"
description="Custom login module shared library">
<fileset dir="${server.config.dir}" includes="CustomLoginModule.jar"/>
</library>
- 必需:要使配置工作,必需更改 jaasLoginContextEntry 元素来包含 loginModuleRef 属性。必须移除 loginModuleRef 元素,并将其添加为 jaasLoginContextEntry 元素的属性。
下面举例说明了使用 loginModuleRef 属性的配置。
<jaasLoginContextEntry name="system.WEB_INBOUND" id="system.WEB_INBOUND"
loginModuleRef="myCustom, hashtable, userNameAndPassword, certificate, token" />
<jaasLoginModule className="com.sample.CustomLoginModule"
id="myCustom" libraryRef="customLoginLib">
</jaasLoginModule>
<library id="customLoginLib" name="customLoginLib"
description="Custom login module shared library">
<fileset dir="${server.config.dir}" includes="CustomLoginModule.jar"/>
</library>