У меня есть существующее Java приложение, которое использует javax.ws.rs для предоставления RESTful-сервисов. Все они работают должным образом.
Для доступа к службам REST вам потребуется Basi c аутентификация (имя пользователя и пароль). Это настроено здесь:
web. xml
<!-- Enforce that users of all REST services are authenticated (basic-auth-friendly + supports CORS) -->
<filter-mapping>
<filter-name>RestAuthentication</filter-name>
<url-pattern>/rest/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Вышеуказанное относится ко всем запросам с путем: /rest/*
.
RestApplication. java
@ApplicationPath("rest")
public class RestApplication extends Application
{
@Override
public Set<Class<?>> getClasses()
{
Set<Class<?>> resourceClasses = new HashSet<Class<?>>();
resourceClasses.add(DuplicateProfileDetails.class);
resourceClasses.add(AuthenticationResource.class);
return resourceClasses;
}
}
Вопрос
Как мне настроить его, чтобы я мог создавать службы REST по другому пути которые не требуют аутентификации?
например, путь: /ng-rest/*
.
Заключение
- путь:
/rest/*
- требуется базовый c аутентификация (статус-кво) - путь:
/ng-rest/*
- аутентификация не требуется
Нужно ли мне создавать другое RestApplication? например,
AnotherRestApplication. java
@ApplicationPath("ng-rest")
public class AnotherRestApplication extends Application
{
@Override
public Set<Class<?>> getClasses()
{
Set<Class<?>> resourceClasses = new HashSet<Class<?>>();
resourceClasses.add(NoAuthRequiredResource.class);
return resourceClasses;
}
}
, тогда как мне настроить Интернет. xml?
<!-- Enforce that users of specific REST services are not authenticated (supports CORS) -->
<filter-mapping>
<filter-name>RestNoAuthentication</filter-name>
<url-pattern>/ng-rest/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>