2016-04-21 3 views

ответ

1

Как отметила Чамила, решение заключалось бы в написании пользовательского компонента. Однако прослушиватель пользовательских операций не будет работать, потому что к тому времени, когда он достигнет слушателей, домен обрабатывается и удаляется из имени пользователя.

Таким образом, это должен быть менеджер пользовательского Userstore, расширяющий ваш текущий менеджер хранилища данных. Обратитесь к this page и напишите пользовательский менеджер магазина (расширение существующего менеджера магазина пользователей облегчит задачу), а затем переопределите его метод authenticate(String,Object,boolean), чтобы проверить существование доменного имени до звонка super(String,Object,boolean). См. Ту же страницу для получения информации о развертывании пользовательского менеджера хранилища.

1

Насколько я знаю, вы не можете сделать это только путем изменения конфигурации. Но вы можете создать пользовательский компонент с классом слушателя, расширяющим org.wso2.carbon.user.core.listener.UserOperationEventListener, и реализовать его doPreAuthenticate, где вы можете проверить имя пользователя, если оно содержит домен магазина пользователя, и return false, если это не так.

обновление

Пожалуйста, обратитесь ответ pulasthi7, в кажется, customUserStoreManager, что нам нужно реализовать здесь, а не слушателя.

+0

Написание пользовательского компонента является решением здесь. Тем не менее, пользовательский прослушиватель не будет работать, потому что к тому времени, когда он достигнет слушателей, домен обрабатывается и удаляется из имени пользователя, поэтому он должен быть настраиваемым пользовательским хранилищем. см. мой ответ ниже. – pulasthi7

+0

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 –

Смежные вопросы