WAS Liberty - 如何触发JAAS模块?

时间:2016-01-07 13:43:12

标签: jaas websphere-liberty

使用WAS 8558并在其中一个URL模式上,需要调用JAAS模块。

在web.xml中输入

<security-constraint>
<display-name>SampleConstraint</display-name>
<web-resource-collection>
  <web-resource-name>Sample</web-resource-name>
  <url-pattern>/wasauth</url-pattern>
  <http-method>GET</http-method>
  <http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
  <description>
        Users allowed access to spoke Identity Provider</description>
  <role-name>FIMAnyAuthenticated</role-name>
  <role-name>FIMUserSelfCareAnyAuthenticated</role-name>
</auth-constraint>

在server.xml中输入

<jaasLoginContextEntry id="system.FIM_OUTBOUND" name="system.FIM_OUTBOUND" loginModuleRef="myCustom, hashtable, userNameAndPassword, certificate, token"/>
                 <jaasLoginModule id="myCustom" className="com.*.SampleLoginModule" controlFlag="REQUIRED" libraryRef="customLoginLib">
</jaasLoginModule>

                 <library id="customLoginLib" apiTypeVisibility="spec, ibm-api, api">
    <fileset dir="/" includes="com.**_8.0.0.jar"/>

此流程使用联合存储库功能(Liberty)进行身份验证。 上面提到的设置允许用户对存储库进行身份验证,但是不会调用JAAS模块。

如果我使用WSLoginModuleProxy将JAAS条目转换为system.WEB_INBOUND - 将调用JAAS模块。

Liberty确实启用了appSecurity-2.0功能。

是否还需要进行其他配置?

1 个答案:

答案 0 :(得分:2)

当Liberty配置文件对受保护的Web资源执行身份验证时,它使用system.WEB_INBOUND JAAS登录配置条目。因此,将调用您在其中配置的任何自定义登录模块。

如果您已在自己或不同的JAAS配置中配置自定义登录模块,则在Web身份验证期间服务器不会调用它们。你的申请。但是,可以直接调用它。