Glassfish аутентификация вызовов @Webservice - PullRequest
0 голосов
/ 18 июля 2011

У нас есть приложение java ee 6, развернутое в glassfish v3.01, мы хотели бы представить некоторые из наших EJB-компонентов в качестве веб-сервисов, но у нас возникают проблемы с безопасностью и аутентификацией конечных точек веб-сервиса. Мы используем пользовательский модуль входа в систему и область. Как мы можем проводить аутентификацию вызовов веб-службы?

Спасибо Гидеон

@WebService
@Stateless
@DeclareRoles({Role.WEBMASTER, Role.ACCOUNTADMIN, Role.ACCOUNTUSER})
@RolesAllowed({Role.WEBMASTER,Role.ACCOUNTADMIN,Role.ACCOUNTUSER})
public class SmppService
{
    @EJB
    private SmppEjb ejbRef;// Add business logic below. (Right-click in editor and choose

    @WebMethod(operationName = "sendMessage")
    @Oneway
    public void sendMessage(@WebParam(name = "cellNumber")
    String cellNumber, @WebParam(name = "message")
    String message) {
        ejbRef.sendMessage(cellNumber, message);
    }

}

1 Ответ

0 голосов
/ 21 июля 2011

Имя пользователя и пароль указываются в заголовке http. У всех клиентов мыла должен быть способ указать это. Например, в нашем коде ruby, который использует soap4r, это выглядит так

instance = eval(@gateways[gateway]).new(url)
instance.options["protocol.http.auth"] << [url, @auth_data[user][0], @auth_data[user][1]]
instance.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_NONE

@ auth_data [user] [0] - это имя пользователя, а @ auth_data user - пароль.

Если вы создаете заголовок вручную, вы должны использовать Дайджест-аутентификация доступа

...