Authenticator и PeerAuthenticator Не работают конечные точки Appengine

После обновления до конечных точек V2 мой API, который использовал @peerAuthenticator, не смог проверить одноранговый узел. Я провел тесты с @Authenticator и столкнулся с той же проблемой, проигнорировав выполнение.

Я создал репозиторий на GitHub для тестирования с пустым приложением.

Репозиторий был создан с помощью шагов, описанных в документации Google.

  • После запуска приложения mvn appengine:run вы можете запросить 3 конечные точки:

  • API

    @Api(name = "myapi", version = "v1")
    public class YourFirstAPI {
    
        @ApiMethod(name = "firstApiMethod", path = "firstApiMethod", httpMethod = HttpMethod.GET)
        public TestObject a() {
            return new TestObject();
        }
    
        @ApiMethod(name = "b", path = "b", httpMethod = HttpMethod.GET, authenticators = {Authenticator.class})
        public TestObject b() {
            return new TestObject();
        }
    
        @ApiMethod(name = "c", path = "c", httpMethod = HttpMethod.GET, peerAuthenticators = PeerAuthenticator.class)
        public TestObject c() {
            return new TestObject();
        }
    }
    
  • Аутентификатор

    public class Authenticator implements com.google.api.server.spi.config.Authenticator {
    
        @Override
        public User authenticate(HttpServletRequest arg0) throws ServiceException {
            throw new ServiceException(401, "unauthorized");
        }
    
    }
    
  • PeerAuthenticator

    public class PeerAuthenticator implements com.google.api.server.spi.config.PeerAuthenticator{
    
        @Override
        public boolean authenticate(HttpServletRequest arg0) {
            // TODO Auto-generated method stub
            return true;
        }
    
    }   
    

У кого-нибудь была такая же проблема? Любое решение для этого?


person Lucas Veber    schedule 30.05.2018    source источник


Ответы (1)


Вы не указали свой аутентификатор или одноранговый аутентификатор в аннотации @Api или @ApiMethod. См. Javadoc.

person saiyr    schedule 30.05.2018
comment
Я установил аутентификацию во втором @apiMethod, он использует класс, который реализует Authenticator. Проблема в том, что он не запускает мой метод Override. - person Lucas Veber; 01.06.2018