Мой вопрос о том, какой лучший способ заблокировать конечную точку, которая автоматически предоставляется Olingo?OData (Olingo) «запретить» конечную точку
Я играю с помощью простого приложения на основе Spring загрузки и использования Apache Olingo.On Короче говоря, это мой сервлет регистрации:
@Configuration
public class CxfServletUtil{
@Bean
public ServletRegistrationBean getODataServletRegistrationBean() {
ServletRegistrationBean odataServletRegistrationBean = new ServletRegistrationBean(new CXFNonSpringJaxrsServlet(), "/user.svc/*");
Map<String, String> initParameters = new HashMap<String, String>();
initParameters.put("javax.ws.rs.Application", "org.apache.olingo.odata2.core.rest.app.ODataApplication");
initParameters.put("org.apache.olingo.odata2.service.factory", "com.olingotest.core.CustomODataJPAServiceFactory");
odataServletRegistrationBean.setInitParameters(initParameters);
return odataServletRegistrationBean;
} ...
где мой ODataJPAServiceFactory является
@Component
public class CustomODataJPAServiceFactory extends ODataJPAServiceFactory implements ApplicationContextAware {
private static ApplicationContext context;
private static final String PERSISTENCE_UNIT_NAME = "myPersistenceUnit";
private static final String ENTITY_MANAGER_FACTORY_ID = "entityManagerFactory";
@Override
public ODataJPAContext initializeODataJPAContext()
throws ODataJPARuntimeException {
ODataJPAContext oDataJPAContext = this.getODataJPAContext();
try {
EntityManagerFactory emf = (EntityManagerFactory) context.getBean(ENTITY_MANAGER_FACTORY_ID);
oDataJPAContext.setEntityManagerFactory(emf);
oDataJPAContext.setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
return oDataJPAContext;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
...
Моя организация является довольно просто ...
@Entity
public class User {
@Id
private String id;
@Basic
private String firstName;
@Basic
private String lastName;
....
Olingo отлично выполняет свою работу, и это помогает мне с генерацией всех конечных точек вокруг операций CRUD для моего объекта.
Мой вопрос: как я могу «подавить» некоторые из них? Скажем, например, что я не хочу включать удаление моего объекта.
Я мог бы попытаться использовать фильтр - но это кажется немного суровым. Есть ли другие, лучшие способы решения моей проблемы?
Спасибо за помощь.