使用Liberty JAAS CustomLoginModule时,401 Unauthorized且无法获取getUserRegistry

时间:2018-05-21 05:57:41

标签: websphere-liberty jaas user-registry

我使用Liberty JAAS CustomLoginModule来自定义我的登录模块以进行身份​​验证。我已经通过了身份验证但授权失败,因为我无法获得用户注册表。从我看到的痕迹,我可以看到我使用  this.userRegistry = this.getUserRegistry(); 它会发出:

java.lang.NullPointerException
at com.ibm.ws.security.authentication.internal.jaas.JAASServiceImpl.getUserRegistry(JAASServiceImpl.java:122)  

但是,从跟踪中,我可以看到在server.xml中配置的信息已经放入Liberty。

*{com.ibm.ws.security.registry.UserRegistry}={user.0.password=*****, user.0.config.referenceType=com.ibm.ws.security.registry.basic.config.user, realm=zosConnect, service.scope=bundle, component.name=com.ibm.ws.security.registry.basic.internal.BasicRegistry, group.0.member.0.name=Fred, user.0.name=Fred, config.source=file, group.0.config.referenceType=com.ibm.ws.security.registry.basic.config.group, id=basic1, service.pid=com.ibm.ws.security.registry.basic.config_39, group.0.name=ADMIN, service.id=260, service.bundleid=31, config.overrides=true, com.ibm.ws.security.registry.type=Basic, component.id=73, config.id=com.ibm.ws.security.registry.basic.config[basic1], group.0.member.0.config.referenceType=com.ibm.ws.security.registry.basic.config.group.member, service.factoryPid=com.ibm.ws.security.registry.basic.config, ignoreCaseForAuthentication=false, service.vendor=IBM, config.displayId=basicRegistry[basic1]}
[5/20/18 15:47:01:012 GMT] 00000015 id=d64f0d3e om.ibm.ws.security.registry.internal.UserRegistryServiceImpl >*

那么,有没有办法获得getUserRegistry?或者有没有办法让它通过授权?

期待答案,非常感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用RegistryHelper.getUserRegistry()方法来获取UR - 更多信息来自https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/rwlp_sec_apis.html

此致 Ut Le