Можно ли настроить WSO2 для запрета входа в систему без домена? , например.Запретить логин без домена
Primary/имя пользователя - позволяют
имя пользователя - запретить
Можно ли настроить WSO2 для запрета входа в систему без домена? , например.Запретить логин без домена
Primary/имя пользователя - позволяют
имя пользователя - запретить
Как отметила Чамила, решение заключалось бы в написании пользовательского компонента. Однако прослушиватель пользовательских операций не будет работать, потому что к тому времени, когда он достигнет слушателей, домен обрабатывается и удаляется из имени пользователя.
Таким образом, это должен быть менеджер пользовательского Userstore, расширяющий ваш текущий менеджер хранилища данных. Обратитесь к this page и напишите пользовательский менеджер магазина (расширение существующего менеджера магазина пользователей облегчит задачу), а затем переопределите его метод authenticate(String,Object,boolean)
, чтобы проверить существование доменного имени до звонка super(String,Object,boolean)
. См. Ту же страницу для получения информации о развертывании пользовательского менеджера хранилища.
Насколько я знаю, вы не можете сделать это только путем изменения конфигурации. Но вы можете создать пользовательский компонент с классом слушателя, расширяющим org.wso2.carbon.user.core.listener.UserOperationEventListener
, и реализовать его doPreAuthenticate
, где вы можете проверить имя пользователя, если оно содержит домен магазина пользователя, и return false
, если это не так.
Пожалуйста, обратитесь ответ pulasthi7, в кажется, customUserStoreManager
, что нам нужно реализовать здесь, а не слушателя.
Написание пользовательского компонента является решением здесь. Тем не менее, пользовательский прослушиватель не будет работать, потому что к тому времени, когда он достигнет слушателей, домен обрабатывается и удаляется из имени пользователя, поэтому он должен быть настраиваемым пользовательским хранилищем. см. мой ответ ниже. – pulasthi7
https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/common /AbstractUserStoreManager.java#L458-#L500 здесь я не вижу, что домен отбрасывается из атрибута username до того, как он достигнет метода preAuthenticate, поэтому кажется, что использование метода слушателя должно работать. И я считаю, что это будет моим менее сложным, чем написание пользовательского userStoreManager –