Я следую некоторым советам о том, как подходить к кодированию проблемы, я не хочу сразу переходить к кодированию, не задумываясь об этом, поскольку мне нужно, чтобы он был как можно более универсальным и настраиваемым,
Сценарий состоит в том, что у меня есть веб-служба, которая действует как шлюз для нисходящих сервисов, с целью аутентификации и авторизации SOAP-сообщений, предназначенных для нисходящих сервисов, что в основном мешает нисходящему сервису делать это самостоятельно. Каждое сообщение SOAP имеет множество различных механизмов WS-Security, к которым обычно присоединяются WS-UsernameToken, WS-Timestamp и подпись XML тела сообщения.
Моя проблема в том, что я хочу найти хороший расширяемый способ проверки всех этих механизмов безопасности, я не понимаю, как это сделать, просто как его оценить.
Я думал о наличии класса контроллера, который инициализируется и контролирует поток проверки, т.е.
ISecurityController controller = SecurityControllerFacotry.getInstance();
boolean proceed = controller.Validate(soapMessage);
используя его очень похоже на шаблон дизайна шаблона, который прерывает поток логики, т.е.
public Boolean Validate(Message soapMessage)
{
return ValidateAuthentication(soapMessage) && ValidateTimeStamp(soapMessage) && ValidateSignture(soapMessage);
}
Будет ли это лучшим средством решения проблемы?
Также было бы лучше поместить каждый из этих методов проверки в свой класс, реализующий общий интерфейс? Так что класс может быть создан и извлечен из какой-либо фабрики проверки, т.е.
IValidationMechanism val = ValidationFactory.getValidationType(ValidationFactory.UsernameToken);
boolean result = val.Validate(soapMessage);
Это дало бы мне легко расширяемый аспект.
Было бы это приемлемым решением или кто-нибудь может придумать другие способы сделать это?
Я разбираюсь в шаблонах проектирования и хороших принципах, поэтому хотел бы пойти по пути, используя их, если это возможно.
Заранее спасибо
Jon
РЕДАКТИРОВАТЬ: служба в основном является службой безопасности шлюза, которая снимает бремя аутентификации и авторизации от служб, которые стоят за ним. Служба безопасности может рассматриваться как неявно вызывающий посредник на пути сообщения SOAP, который проверяет механизмы безопасности в сообщении SOAP и в зависимости от результата проверки направляет сообщение в соответствующую службу нисходящего потока путем опроса заголовков WS-адресации. Хотя сервис на самом деле не является вопросом, это больше о том, как реализовать процедуру проверки.