Я знаю, что конфигурация Apache Rampart позволяет предоставить класс обработчика обратного вызова пароля, который можно использовать для предоставления паролей, необходимых движку Rampart для создания токенов имени пользователя и создания подписей при отправке сообщений. Написано, что всякий раз, когда Rampart Engine требуется пароль для создания токена имени пользователя, он создает экземпляр WSPasswordCallback, устанавливающий соответствующий идентификатор, который он извлекает из параметра конфигурации Rampart, и передает его классу обратного вызова пароля через метод handle. Но, как вы видите, я использовал конфигурацию, основанную на политике!
Итак, у меня есть несколько вопросов, чтобы увидеть, все ли я понимаю:
Я отсюда, где движок вала извлекает соответствующее имя пользователя -
wsse:Username>bob</wsse:Username>'+
После извлечения он передает его нашему классу PWCBHandler с помощью метода handle. Наш метод handle устанавливает соответствующий пароль, если имя пользователя правильное.
И самое главное - поскольку я должен использовать свой веб-сервис из javascript, в конце я предоставил свой запрос на мыло. Но, как вы видите, я предоставляю и имя пользователя, и пароль, и я не вижу, где находится безопасность, поскольку все могут видеть мое имя пользователя и пароль. Это правильно. Как я могу сделать его более безопасным.
вот мой код.
Вот мой код для класса PassWordCallback.java
ublic void handle(обратные вызовы Callback[]) выдает IOException, UnsupportedCallbackException { for (int i = 0; i ‹ callbacks.length; i++) {
WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i]; if(pwcb.getIdentifier().equals("test") &&pwcb.getPassword().equals("pass")) { return; } else { throw new UnsupportedCallbackException(callbacks[i],"Incorrect login/password"); } } }
вот мой запрос на мыло из javascript
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soapenv:Envelope " +
"xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
"xmlns:tan=\"http://tan\">"+
"<soapenv:Header>"+
'<wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" soapenv:mustUnderstand="1">'+
'<wsse:UsernameToken xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="123">'+
'<wsse:Username>bob</wsse:Username>'+
'<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">bobPW</wsse:Password>'+
'</wsse:UsernameToken>'+
'</wsse:Security>'+
"</soapenv:Header>"+
"<soapenv:Body>" +
"<tan:testws>" +
'<tan:x>ECHOO</tan:x>' +
' </tan:testws>'+
'</soapenv:Body>' +
'</soapenv:Envelope>';