禁止在没有域的情况下登录

时间:2016-04-21 16:35:17

标签: wso2 wso2is wso2carbon

是否可以将WSO2配置为不允许没有域的登录? 例如

  

主要/用户名 - 允许

     

用户名 - 禁止

2 个答案:

答案 0 :(得分:1)

据我所知,仅仅通过更改配置就无法做到这一点。但是您可以使用扩展org.wso2.carbon.user.core.listener.UserOperationEventListener的侦听器类创建自定义组件并实现其doPreAuthenticate,您可以在其中检查用户名,如果它包含带有它的用户存储域,则return false如果不包含

更新

请参考pulasthi7的回答,似乎customUserStoreManager是我们需要在这里实现的,而不是听众。

答案 1 :(得分:1)

正如Chamila所说,解决方案是编写自定义组件。但是,用户操作侦听器将无法工作,因为当它到达侦听器时,将从用户名处理和删除域。

因此,它应该是一个Custom Userstore管理器,可以扩展您当前的用户存储管理器。请参阅this page并编写自定义用户管理器(扩展当前用户存储管理器将使事情变得更容易),然后在调用authenticate(String,Object,boolean)之前覆盖其super(String,Object,boolean)方法以检查域名是否存在。有关部署自定义用户存储管理器的详细信息,请参阅同一页面。