Как правильно настроить Payara Embedded для доступа к его REST API (серверная клиентская среда)? - PullRequest
0 голосов
/ 25 ноября 2018

Я запускаю экземпляр Payara Embedded следующим образом:

public static void main(String[] args) {
    try {
        System.out.println("[INFO] Starting embedded Payara...");
        BootstrapProperties bootstrap = new BootstrapProperties();
        GlassFishRuntime runtime = GlassFishRuntime.bootstrap();
        GlassFishProperties glassfishProperties = new GlassFishProperties();
        glassfishProperties.setPort("http-listener", 8180);
        glassfishProperties.setPort("https-listener", 8183);
        GlassFish glassfish = runtime.newGlassFish(glassfishProperties);
        glassfish.start();
        Deployer deployer = glassfish.getDeployer();
        deployer.deploy(new File(System.getProperty("target.project")), "--name=app", "--contextroot=/", "--force=true");
    } catch (GlassFishException ex) {
        LOG.log(Level.SEVERE, null, ex);
    }
}

После запуска экземпляра Payara мне нужно управлять им с помощью отдельного приложения, для этого я планировал использовать Payara REST API.(оба приложения должны быть запущены на одном компьютере)

API доступен и отлично работает для чтения, но как только я пытаюсь остановить сервер, отправив запрос POST в конечную точку: http://localhost:4848/management/domain/stop- в консоли выдается следующее исключение:

Nov 25, 2018 8:00:30 PM com.sun.enterprise.admin.util.CommandSecurityChecker authorize
WARNING: com.sun.enterprise.v3.admin.StopDomainCommand
java.lang.IllegalArgumentException: subject
        at com.sun.enterprise.admin.util.CommandSecurityChecker.authorize(CommandSecurityChecker.java:172)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1249)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:111)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1857)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1733)
        at org.glassfish.admin.rest.utils.SseCommandHelper.run(SseCommandHelper.java:98)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Очевидно, что требуется правильная аутентификация ...

Вопрос: как правильно предоставить данные аутентификации для RESTAPI?

Я пытался поиграть с заголовком запроса авторизации с базовой аутентификацией, но пока не добился успеха.Большое спасибо за ваши советы по решению этой проблемы!Спасибо!

...