Java Examples for javax.ws.rs.HeaderParam
The following java examples will help you to understand the usage of javax.ws.rs.HeaderParam. These source code samples are taken from different open source projects.
Example 1
| Project: XChange-master File: BTCMarketsDigestTest.java View source code |
@Test
public void shouldEncodeRestInvocation() throws Exception {
// given
String expected = "wPYiZy9kIfRsexepi81dvv/eHv8fiyWdAoRSlaZrE3D63GbK3VOPRExKe5alTcNoldn2xd+7RS2avbCInTltlA==";
RestInvocation invocation = mock(RestInvocation.class);
PowerMockito.when(invocation, "getParamValue", Mockito.eq(HeaderParam.class), Mockito.eq("timestamp")).thenReturn("nonce");
PowerMockito.when(invocation, "getMethodPath").thenReturn("/path/to/method");
PowerMockito.when(invocation, "getRequestBody").thenReturn("request body");
// when
String encoded = btcMarketsDigest.digestParams(invocation);
// then
assertThat(encoded).isEqualTo(expected);
}Example 2
| Project: javaone2015-cloudone-master File: LaterResource.java View source code |
@Path("all")
@POST
public String all(@HeaderParam("Content-Type") String contentType, @QueryParam("method") String methodName, @QueryParam("uri") String uri, @QueryParam("services") String services, @QueryParam("retention-count") @DefaultValue("-1") int retentionCount, InputStream is) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (is != null) {
byte[] buff = new byte[64];
int count = -1;
try {
while ((count = is.read(buff)) > 0) {
baos.write(buff, 0, count);
}
} catch (IOException e) {
throw new WebApplicationException(500);
}
}
LaterService.getInstance().addAllItem(contentType, methodName, uri, services, retentionCount, baos.toByteArray());
return null;
}Example 3
| Project: jive-sdk-java-jersey-master File: FileStorageService.java View source code |
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public ExStorageFileEntity upload(@HeaderParam(HttpHeaders.AUTHORIZATION) String authorization, @PathParam("workspaceId") String workspaceId, @FormDataParam("file") InputStream uploadedInputStream, @FormDataParam("file") FormDataContentDisposition fileData, @FormDataParam("metadata") ExStorageFileEntity metadata) {
String externalId = Long.toString(ExternalDocumentIDGenerator.getNextID());
String externalVersionId = Long.toString(ExternalDocumentVersionIDGenerator.getNextID());
Long fileSize = FileStorage.uploadFile(workspaceId, uploadedInputStream, fileData.getFileName(), externalId, externalVersionId);
metadata.setExternalId(externalId);
metadata.getVersion().setExternalId(externalVersionId);
metadata.getVersion().setSize(fileSize);
metadata = FileStorageResponseResourceWrapper.wrapWithResources(workspaceId, metadata);
return metadata;
}Example 4
| Project: airship-master File: CoordinatorSlotResource.java View source code |
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response install(AssignmentRepresentation assignmentRepresentation, @DefaultValue("1") @QueryParam("limit") int limit, @Context UriInfo uriInfo, @HeaderParam(AIRSHIP_AGENTS_VERSION_HEADER) String expectedAgentsVersion) {
Preconditions.checkNotNull(assignmentRepresentation, "assignmentRepresentation must not be null");
Preconditions.checkArgument(limit > 0, "limit must be at least 1");
Assignment assignment = assignmentRepresentation.toAssignment();
// select the target agents
Predicate<AgentStatus> agentFilter = AgentFilterBuilder.build(uriInfo, transform(coordinator.getAgents(), idGetter()), transform(coordinator.getAllSlotStatus(), uuidGetter()), false, repository);
List<AgentStatus> agents = coordinator.getAgents(agentFilter);
// verify the expected status of agents
checkAgentsVersion(expectedAgentsVersion, agents);
// install the software
List<SlotStatus> slots = coordinator.install(agentFilter, limit, assignment);
// calculate unique prefix size with the new slots included
return Response.ok(transform(slots, fromSlotStatus(coordinator.getAllSlotStatus(), repository))).header(AIRSHIP_SLOTS_VERSION_HEADER, createSlotsVersion(slots)).build();
}Example 5
| Project: coprhd-controller-master File: ConsistencyGroupService.java View source code |
/**
* This function handles Get request for a consistency group detail
*
* @param openstackTenantId Openstack tenant id
* @param consistencyGroupId Consistency group id
* @param isV1Call openstack cinder V1 call
* @param header HTTP header
* @brief Get Consistency Group Info
* @return Response
*/
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path("/{consistencyGroup_id}")
@CheckPermission(roles = { Role.SYSTEM_MONITOR, Role.TENANT_ADMIN }, acls = { ACL.ANY })
public Response getCosistencyGroup(@PathParam("tenant_id") String openstackTenantId, @PathParam("consistencyGroup_id") String consistencyGroupId, @HeaderParam("X-Cinder-V1-Call") String isV1Call, @Context HttpHeaders header) {
Project project = getCinderHelper().getProject(openstackTenantId, getUserFromContext());
if (project == null) {
String message = "Bad Request: Project with the OpenStack Tenant Id : " + openstackTenantId + " does not exist";
_log.error(message);
return CinderApiUtils.createErrorResponse(400, message);
}
final BlockConsistencyGroup blockConsistencyGroup = findConsistencyGroup(consistencyGroupId, openstackTenantId);
if (blockConsistencyGroup == null) {
return CinderApiUtils.createErrorResponse(404, "Invalid Request: No Such Consistency Group Found");
} else if (!consistencyGroupId.equals(CinderApiUtils.splitString(blockConsistencyGroup.getId().toString(), ":", 3))) {
_log.error("Bad Request : There is no consistency group with id {} , please retry with correct consistency group id", consistencyGroupId);
return CinderApiUtils.createErrorResponse(400, "Bad Request : There is no consistency group exist, please retry with correct consistency group id");
} else {
ConsistencyGroupDetail response = getConsistencyGroupDetail(blockConsistencyGroup);
return CinderApiUtils.getCinderResponse(response, header, true, CinderConstants.STATUS_OK);
}
}Example 6
| Project: everrest-master File: FieldInjectorImplTest.java View source code |
@SuppressWarnings("unchecked")
private void mockParameterResolverFactory() {
parameterResolverFactory = mock(ParameterResolverFactory.class);
pathParameterResolver = mock(ParameterResolver.class);
queryParameterResolver = mock(ParameterResolver.class);
matrixParameterResolver = mock(ParameterResolver.class);
cookieParameterResolver = mock(ParameterResolver.class);
headerParameterResolver = mock(ParameterResolver.class);
when(parameterResolverFactory.createParameterResolver(isA(PathParam.class))).thenReturn(pathParameterResolver);
when(parameterResolverFactory.createParameterResolver(isA(QueryParam.class))).thenReturn(queryParameterResolver);
when(parameterResolverFactory.createParameterResolver(isA(MatrixParam.class))).thenReturn(matrixParameterResolver);
when(parameterResolverFactory.createParameterResolver(isA(CookieParam.class))).thenReturn(cookieParameterResolver);
when(parameterResolverFactory.createParameterResolver(isA(HeaderParam.class))).thenReturn(headerParameterResolver);
}Example 7
| Project: gitlab-jira-integration-master File: HookResource.java View source code |
@POST
@Produces(MediaType.APPLICATION_JSON)
@Timed
public void hook(@Auth Principal principal, @HeaderParam(GITLAB_HEADER) String gitLabHeader, @Valid Event event) {
new Thread(() -> {
setThreadName(principal);
metricRegistry.counter(principal.getName()).inc();
log.info("Hook received > {}", event);
switch(event.getType()) {
case PUSH:
case TAG_PUSH:
service.performPushEvent(event);
break;
}
}).start();
}Example 8
| Project: JaxRs2Retrofit-master File: ParamConverterManager.java View source code |
/**
* Returns an instance of this manager which is preconfigured with a number of converters,
* e.g. {@link javax.ws.rs.PathParam} to {@link retrofit.http.Path}.
*/
public static ParamConverterManager getDefaultInstance() {
ParamConverterManager manager = new ParamConverterManager();
manager.registerConverter(ClassName.get(HeaderParam.class), new MappingConverter(ClassName.get(Header.class)));
manager.registerConverter(ClassName.get(PathParam.class), new MappingConverter(ClassName.get(Path.class)));
manager.registerConverter(ClassName.get(QueryParam.class), new MappingConverter(ClassName.get(Query.class)));
manager.registerConverter(ClassName.get(Void.class), new MappingConverter(ClassName.get(Body.class)));
return manager;
}Example 9
| Project: jersey-doc-generator-master File: ParameterParser.java View source code |
/**
* Parse a paramater with their jersey annotation
*
* @param parameter The current parameter
* @param annotationList The associated annotation
* @return
*/
public static ParameterContent parse(Class<?> parameter, Annotation[] annotationList) {
ParameterContent pc = new ParameterContent();
pc.setType(parameter.getName());
for (Annotation annotation : annotationList) {
// Jersey - @DefaultValue
if (annotation instanceof DefaultValue) {
DefaultValue dv = (DefaultValue) annotation;
pc.setDefaultValue(dv.value());
}
// Jersey - @CookieParam
if (annotation instanceof CookieParam) {
CookieParam cp = (CookieParam) annotation;
pc.setContext(cp.annotationType().getName());
pc.setName(cp.value());
}
// Jersey - @FormParam
if (annotation instanceof FormParam) {
FormParam fp = (FormParam) annotation;
pc.setContext(fp.annotationType().getName());
pc.setName(fp.value());
}
// Jersey - @HeaderParam
if (annotation instanceof HeaderParam) {
HeaderParam hp = (HeaderParam) annotation;
pc.setContext(hp.annotationType().getName());
pc.setName(hp.value());
}
// Jersey - @MatrixParam
if (annotation instanceof MatrixParam) {
MatrixParam mp = (MatrixParam) annotation;
pc.setContext(mp.annotationType().getName());
pc.setName(mp.value());
}
// Jersey - @PathParam
if (annotation instanceof PathParam) {
PathParam pp = (PathParam) annotation;
pc.setContext(pp.annotationType().getName());
pc.setName(pp.value());
}
// Jersey - @QueryParam
if (annotation instanceof QueryParam) {
QueryParam qp = (QueryParam) annotation;
pc.setContext(qp.annotationType().getName());
pc.setName(qp.value());
}
}
return pc;
}Example 10
| Project: bennu-master File: ExternalApplicationResource.java View source code |
@GET
@Path("/{app}/logo")
public Response logo(@PathParam("app") ExternalApplication app, @HeaderParam("If-None-Match") String ifNoneMatch) {
if (app != null && app.getLogo() != null) {
EntityTag etag = buildETag(app);
if (etag.toString().equals(ifNoneMatch)) {
return Response.notModified(etag).build();
}
return Response.ok(Base64.getDecoder().decode(app.getLogo()), "image/jpeg").tag(etag).build();
} else {
try (InputStream placeholder = getClass().getResourceAsStream("/noapplication.png")) {
return Response.ok(ByteStreams.toByteArray(placeholder), "image/png").build();
} catch (IOException e) {
throw new WebApplicationException(Status.NOT_FOUND);
}
}
}Example 11
| Project: dropwizard-master File: JerseyParameterNameProvider.java View source code |
/**
* Derives member's name and type from it's annotations
*/
public static Optional<String> getParameterNameFromAnnotations(Annotation[] memberAnnotations) {
for (Annotation a : memberAnnotations) {
if (a instanceof QueryParam) {
return Optional.of("query param " + ((QueryParam) a).value());
} else if (a instanceof PathParam) {
return Optional.of("path param " + ((PathParam) a).value());
} else if (a instanceof HeaderParam) {
return Optional.of("header " + ((HeaderParam) a).value());
} else if (a instanceof CookieParam) {
return Optional.of("cookie " + ((CookieParam) a).value());
} else if (a instanceof FormParam) {
return Optional.of("form field " + ((FormParam) a).value());
} else if (a instanceof Context) {
return Optional.of("context");
} else if (a instanceof MatrixParam) {
return Optional.of("matrix param " + ((MatrixParam) a).value());
}
}
return Optional.empty();
}Example 12
| Project: etk-component-master File: BaseWadlGeneratorImpl.java View source code |
/**
* {@inheritDoc}
*/
public Param createParam(MethodParameter methodParameter) {
Param wadlParemeter = null;
Annotation annotation = methodParameter.getAnnotation();
Class<?> annotationClass = methodParameter.getAnnotation().annotationType();
// MethodParameterHelper#PARAMETER_ANNOTATIONS_MAP
if (annotationClass == PathParam.class) {
wadlParemeter = new Param();
// attribute 'name'
wadlParemeter.setName(((PathParam) annotation).value());
// attribute 'style'
wadlParemeter.setStyle(ParamStyle.TEMPLATE);
} else if (annotationClass == MatrixParam.class) {
wadlParemeter = new Param();
wadlParemeter.setName(((MatrixParam) annotation).value());
wadlParemeter.setStyle(ParamStyle.MATRIX);
} else if (annotationClass == QueryParam.class) {
wadlParemeter = new Param();
wadlParemeter.setName(((QueryParam) annotation).value());
wadlParemeter.setStyle(ParamStyle.QUERY);
} else if (annotationClass == HeaderParam.class) {
wadlParemeter = new Param();
wadlParemeter.setName(((HeaderParam) annotation).value());
wadlParemeter.setStyle(ParamStyle.HEADER);
}
if (wadlParemeter == null)
// ignore this method parameter
return null;
// attribute 'repeat'
Class<?> parameterClass = methodParameter.getParameterClass();
if (parameterClass == List.class || parameterClass == Set.class || parameterClass == SortedSet.class)
wadlParemeter.setRepeating(true);
// attribute 'default'
if (methodParameter.getDefaultValue() != null)
wadlParemeter.setDefault(methodParameter.getDefaultValue());
// attribute 'type'
if (parameterClass.equals(Boolean.class) || parameterClass.equals(boolean.class))
wadlParemeter.setType(new QName("http://www.w3.org/2001/XMLSchema", "boolean", "xs"));
else if (parameterClass.equals(Byte.class) || parameterClass.equals(byte.class))
wadlParemeter.setType(new QName("http://www.w3.org/2001/XMLSchema", "byte", "xs"));
else if (parameterClass.equals(Short.class) || parameterClass.equals(short.class))
wadlParemeter.setType(new QName("http://www.w3.org/2001/XMLSchema", "short", "xs"));
else if (parameterClass.equals(Integer.class) || parameterClass.equals(int.class))
wadlParemeter.setType(new QName("http://www.w3.org/2001/XMLSchema", "integer", "xs"));
else if (parameterClass.equals(Long.class) || parameterClass.equals(long.class))
wadlParemeter.setType(new QName("http://www.w3.org/2001/XMLSchema", "long", "xs"));
else if (parameterClass.equals(Float.class) || parameterClass.equals(float.class))
wadlParemeter.setType(new QName("http://www.w3.org/2001/XMLSchema", "float", "xs"));
else if (parameterClass.equals(Double.class) || parameterClass.equals(double.class))
wadlParemeter.setType(new QName("http://www.w3.org/2001/XMLSchema", "double", "xs"));
else
wadlParemeter.setType(new QName("http://www.w3.org/2001/XMLSchema", "string", "xs"));
return wadlParemeter;
}Example 13
| Project: lemon-master File: RestFilter.java View source code |
public Map<String, String> getMetaData(Annotation[] annotations) {
Map<String, String> metaData = new HashMap<String, String>();
for (Annotation annotation : annotations) {
String name = null;
String type = null;
String value = null;
String defaultValue = null;
if (annotation instanceof PathParam) {
name = ((PathParam) annotation).value();
type = "path";
metaData.put("name", name);
metaData.put("type", type);
// value = this.getPathParam(request, name, method);
} else if (annotation instanceof QueryParam) {
name = ((QueryParam) annotation).value();
type = "query";
metaData.put("name", name);
metaData.put("type", type);
// value = request.getParameter(name);
} else if (annotation instanceof FormParam) {
name = ((FormParam) annotation).value();
type = "form";
metaData.put("name", name);
metaData.put("type", type);
// value = parameters.get(name);
} else if (annotation instanceof HeaderParam) {
name = ((HeaderParam) annotation).value();
type = "header";
metaData.put("name", name);
metaData.put("type", type);
// value = request.getHeader(name);
} else if (annotation instanceof DefaultValue) {
defaultValue = ((DefaultValue) annotation).value();
metaData.put("defaultValue", defaultValue);
}
}
return metaData;
}Example 14
| Project: osiris-master File: FeatureResourceImpl.java View source code |
@Override
@POST
@ValidationRequired(processor = RestViolationProcessor.class)
@ApiOperation(value = "Store a feature", httpMethod = "POST", response = FeatureDTO.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Feature was stored", response = FeatureDTO.class), @ApiResponse(code = 400, message = "Latitude range out of index"), @ApiResponse(code = 400, message = "Longitude range out of index"), @ApiResponse(code = 400, message = "Geometry is invalid"), @ApiResponse(code = 400, message = "Mongo GeoJSON format is not correct"), @ApiResponse(code = 400, message = "Invalid input parameter (header)") })
public Response storeFeature(@Auth BasicAuth principal, @ApiParam(value = "Application identifier", required = true) @NotBlank @NotNull @HeaderParam("api_key") String appIdentifier, @ApiParam(required = true, value = "Feature") @Valid @NotNull FeatureDTO featureDTO) throws AssemblyException, MongoGeospatialException {
validations.checkIsNotNullAndNotBlank(appIdentifier);
validations.checkIsNotNull(featureDTO);
Feature feature = featureManager.storeFeature(appIdentifier, featureAssembler.createDomainObject(featureDTO));
FeatureDTO featureResponseDTO = featureAssembler.createDataTransferObject(feature);
return Response.ok(featureResponseDTO).build();
}Example 15
| Project: Resteasy-master File: SigningResource.java View source code |
@DELETE
@Path("request-only")
public Response deleteRequestOnly(@Context HttpHeaders headers, @Context UriInfo uriInfo, @HeaderParam(DKIMSignature.DKIM_SIGNATURE) DKIMSignature signature) {
Assert.assertNotNull(signature);
Verification verification = new Verification(keys.getPublic());
verification.setBodyHashRequired(false);
verification.getRequiredAttributes().put("method", "GET");
verification.getRequiredAttributes().put("uri", uriInfo.getPath());
try {
verification.verify(signature, headers.getRequestHeaders(), null, keys.getPublic());
} catch (SignatureException e) {
throw new RuntimeException(e);
}
String token = signature.getAttributes().get("token");
signature = new DKIMSignature();
signature.setDomain("samplezone.org");
signature.setSelector("test");
signature.setPrivateKey(keys.getPrivate());
signature.setBodyHashRequired(false);
signature.getAttributes().put("token", token);
return Response.ok().header(DKIMSignature.DKIM_SIGNATURE, signature).build();
}Example 16
| Project: swiftproxy-master File: ContainerResource.java View source code |
@PUT
public Response putContainer(@NotNull @PathParam("container") String container, @HeaderParam("X-Auth-Token") String authToken, @HeaderParam("X-Container-Read") String readACL, @HeaderParam("X-Container-write") String writeACL, @HeaderParam("X-Container-Sync-To") String syncTo, @HeaderParam("X-Container-Sync-Key") String syncKey, @HeaderParam("X-Versions-Location") String versionsLocation, @HeaderParam(HttpHeaders.CONTENT_TYPE) String contentType, @HeaderParam("X-Detect-Content-Type") boolean detectContentType, @HeaderParam(HttpHeaders.IF_NONE_MATCH) String ifNoneMatch) {
Response.Status status;
BlobStore store = getBlobStore(authToken).get(container);
if (store.containerExists(container)) {
status = Response.Status.ACCEPTED;
} else {
createContainer(authToken, container);
status = Response.Status.CREATED;
}
return Response.status(status).build();
}Example 17
| Project: web-framework-master File: JerseyParameterNameProvider.java View source code |
/**
* Derives member's name and type from it's annotations
*/
public static Optional<String> getParameterNameFromAnnotations(Annotation[] memberAnnotations) {
for (Annotation a : memberAnnotations) {
if (a instanceof QueryParam) {
return Optional.of("query param " + ((QueryParam) a).value());
} else if (a instanceof PathParam) {
return Optional.of("path param " + ((PathParam) a).value());
} else if (a instanceof HeaderParam) {
return Optional.of("header " + ((HeaderParam) a).value());
} else if (a instanceof CookieParam) {
return Optional.of("cookie " + ((CookieParam) a).value());
} else if (a instanceof FormParam) {
return Optional.of("form field " + ((FormParam) a).value());
} else if (a instanceof Context) {
return Optional.of("context");
} else if (a instanceof MatrixParam) {
return Optional.of("matrix param " + ((MatrixParam) a).value());
}
}
return Optional.empty();
}Example 18
| Project: archistar-core-master File: FakeRoot.java View source code |
@GET
@Produces("application/xml")
public String getAll(@QueryParam("delimiter") String delim, @QueryParam("prefix") String prefix, @QueryParam("max-keys") int maxKeysInt, @HeaderParam("X-Bucket") String bucket) throws ReconstructionException {
if (bucket.isEmpty()) {
/* list all buckets */
return builder.stringFromDoc(builder.listBuckets(this.buckets));
} else if (!this.buckets.containsKey(bucket)) {
return bucketNotFound(bucket);
} else {
/* return content of this bucket */
String tmp = this.buckets.get(bucket).getAll(bucket, delim, prefix, maxKeysInt);
return tmp;
}
}Example 19
| Project: carbon-identity-master File: UserResource.java View source code |
@GET
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getUser(@PathParam(SCIMConstants.CommonSchemaConstants.ID) String id, @HeaderParam(SCIMConstants.ACCEPT_HEADER) String format, @HeaderParam(SCIMConstants.AUTHENTICATION_TYPE_HEADER) String authMechanism, @HeaderParam(SCIMConstants.AUTHORIZATION_HEADER) String authorization) {
Encoder encoder = null;
try {
IdentitySCIMManager identitySCIMManager = IdentitySCIMManager.getInstance();
// defaults to application/json.
format = identifyOutputFormat(format);
// obtain the encoder at this layer in case exceptions needs to be encoded.
encoder = identitySCIMManager.getEncoder(SCIMConstants.identifyFormat(format));
// obtain the user store manager
UserManager userManager = IdentitySCIMManager.getInstance().getUserManager(authorization);
// create charon-SCIM user endpoint and hand-over the request.
UserResourceEndpoint userResourceEndpoint = new UserResourceEndpoint();
SCIMResponse scimResponse = userResourceEndpoint.get(id, format, userManager);
// appropriately.
return new JAXRSResponseBuilder().buildResponse(scimResponse);
} catch (CharonException e) {
if (logger.isDebugEnabled()) {
logger.debug(e.getMessage(), e);
}
if (e.getCode() == -1) {
e.setCode(ResponseCodeConstants.CODE_INTERNAL_SERVER_ERROR);
}
return new JAXRSResponseBuilder().buildResponse(AbstractResourceEndpoint.encodeSCIMException(encoder, e));
} catch (FormatNotSupportedException e) {
return new JAXRSResponseBuilder().buildResponse(AbstractResourceEndpoint.encodeSCIMException(encoder, e));
}
}Example 20
| Project: carbon-registry-master File: Tags.java View source code |
/**
* This method tags associated with the given resource
*
* @param resourcePath resource path
* @param start starting page number
* @param size number of tags to be fetched
* @return JSON tag model eg: {"tags":[<array of tag names]}
*/
@GET
@Produces("application/json")
@ApiOperation(value = "Get all tags on a resource", httpMethod = "GET", notes = "Fetch all tags on a resource", response = TagModel.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Found the tags and returned in body"), @ApiResponse(code = 401, message = "Invalid credentials provided"), @ApiResponse(code = 404, message = "Given specific resource not found"), @ApiResponse(code = 500, message = "Internal server error occurred") })
public Response getTags(@QueryParam("path") String resourcePath, @QueryParam("start") int start, @QueryParam("size") int size, @HeaderParam("X-JWT-Assertion") String JWTToken) {
RestAPIAuthContext authContext = RestAPISecurityUtils.getAuthContext(PrivilegedCarbonContext.getThreadLocalCarbonContext(), JWTToken);
if (!authContext.isAuthorized()) {
return Response.status(Response.Status.UNAUTHORIZED).build();
}
if (resourcePath == null || "".equals(resourcePath)) {
//Return tagsCloud, therefore no need pagination.
return getAllTags();
}
org.wso2.carbon.registry.core.Tag[] tags = new org.wso2.carbon.registry.core.Tag[0];
try {
Registry registry = getUserRegistry(authContext.getUserName(), authContext.getTenantId());
if (!registry.resourceExists(resourcePath)) {
return Response.status(Response.Status.NOT_FOUND).entity(RestAPIConstants.RESOURCE_NOT_FOUND).build();
}
tags = registry.getTags(resourcePath);
} catch (RegistryException e) {
log.error("Failed to get tags on resource " + resourcePath, e);
Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
}
//Need paginate, because it return tags of a resource
return getPaginatedResults(tags, start, size, "", "");
}Example 21
| Project: datalifecycle-master File: PipesAdmin.java View source code |
/**
* This method return an RdfViewable, this is an RDF serviceUri with
* associated presentational information.
*/
@GET
public RdfViewable serviceEntry(@Context final UriInfo uriInfo, @QueryParam("url") final UriRef url, @HeaderParam("user-agent") String userAgent) throws Exception {
//this maks sure we are nt invoked with a trailing slash which would affect
//relative resolution of links (e.g. css)
TrailingSlash.enforcePresent(uriInfo);
final String resourcePath = uriInfo.getAbsolutePath().toString();
if (url != null) {
String query = url.toString();
log.info(query);
}
//The URI at which this service was accessed, this will be the
//central serviceUri in the response
final UriRef serviceUri = new UriRef(resourcePath);
//the in memory graph to which the triples for the response are added
final MGraph responseGraph = new IndexedMGraph();
Lock rl = getDlcGraph().getLock().readLock();
rl.lock();
try {
responseGraph.addAll(getDlcGraph());
//Add the size info of the graphs of all the datasets
addGraphsSize(responseGraph);
} finally {
rl.unlock();
}
//This GraphNode represents the service within our result graph
final GraphNode node = new GraphNode(serviceUri, responseGraph);
node.addProperty(DLC.graph, DlcGraphProvider.DATA_LIFECYCLE_GRAPH_REFERENCE);
//What we return is the GraphNode to the template with the same path and name
return new RdfViewable("PipesAdmin", node, PipesAdmin.class);
}Example 22
| Project: dropwizard-jedis-master File: TeamsServiceResource.java View source code |
@GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.TEXT_HTML })
public Object getAllTeams(@HeaderParam("Accept") String mediaType) {
List<String> teams = new ArrayList<String>();
Jedis jedis = pool.getResource();
try {
List<String> teamsKeys = new ArrayList<String>(jedis.keys(KEY_SEARCH));
for (String key : teamsKeys) {
teams.add(nameFromTeamKey(key));
}
pool.returnResource(jedis);
} catch (Exception e) {
pool.returnBrokenResource(jedis);
throw e;
}
if (mediaType.equalsIgnoreCase(MediaType.APPLICATION_JSON)) {
return teams;
}
return new AllTeamsView(teams);
}Example 23
| Project: jersey-1.x-old-master File: HeaderParamAsStringTest.java View source code |
@GET
@Produces("application/list")
public String doGet(@HeaderParam("args") List args) {
assertEquals(String.class, args.get(0).getClass());
assertEquals("a", args.get(0));
assertEquals(String.class, args.get(1).getClass());
assertEquals("b", args.get(1));
assertEquals(String.class, args.get(2).getClass());
assertEquals("c", args.get(2));
return "content";
}Example 24
| Project: jersey-old-master File: HeaderParamAsStringTest.java View source code |
@GET
@Produces("application/list")
public String doGet(@HeaderParam("args") List args) {
assertEquals(String.class, args.get(0).getClass());
assertEquals("a", args.get(0));
assertEquals(String.class, args.get(1).getClass());
assertEquals("b", args.get(1));
assertEquals(String.class, args.get(2).getClass());
assertEquals("c", args.get(2));
return "content";
}Example 25
| Project: killbill-master File: TransactionResource.java View source code |
@TimedResource
@POST
@Path("/{transactionId:" + UUID_PATTERN + "}/")
@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Mark a pending payment transaction as succeeded or failed")
@ApiResponses(value = { @ApiResponse(code = 400, message = "Invalid paymentId supplied"), @ApiResponse(code = 404, message = "Account or Payment not found") })
public Response notifyStateChanged(final PaymentTransactionJson json, @PathParam("transactionId") final String transactionIdStr, @HeaderParam(HDR_CREATED_BY) final String createdBy, @HeaderParam(HDR_REASON) final String reason, @HeaderParam(HDR_COMMENT) final String comment, @javax.ws.rs.core.Context final UriInfo uriInfo, @javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
verifyNonNullOrEmpty(json, "PaymentTransactionJson body should be specified");
verifyNonNullOrEmpty(json.getPaymentId(), "PaymentTransactionJson paymentId needs to be set", json.getStatus(), "PaymentTransactionJson status needs to be set");
final CallContext callContext = context.createContext(createdBy, reason, comment, request);
final UUID paymentId = UUID.fromString(json.getPaymentId());
final Payment payment = paymentApi.getPayment(paymentId, false, false, ImmutableList.<PluginProperty>of(), callContext);
final Account account = accountUserApi.getAccountById(payment.getAccountId(), callContext);
final boolean success = TransactionStatus.SUCCESS.name().equals(json.getStatus());
final Payment result = paymentApi.notifyPendingTransactionOfStateChanged(account, UUID.fromString(transactionIdStr), success, callContext);
return uriBuilder.buildResponse(uriInfo, PaymentResource.class, "getPayment", result.getId(), request);
}Example 26
| Project: NetLicensingClient-java-master File: SecurityTest.java View source code |
@Path("get-auth-header")
@GET
public Response getAuthHeader(@HeaderParam("authorization") final String authorization) {
final Netlicensing netlicensing = objectFactory.createNetlicensing();
netlicensing.setInfos(objectFactory.createNetlicensingInfos());
final Info info = objectFactory.createInfo();
info.setValue(authorization);
netlicensing.getInfos().getInfo().add(info);
return Response.ok(netlicensing).build();
}Example 27
| Project: rest-client-tools-master File: ClientMarshallerFactory.java View source code |
public static Marshaller createMarshaller(Class<?> declaring, Class<?> type, Annotation[] annotations, Type genericType, AccessibleObject target, MediaType defaultConsumes, boolean ignoreBody) {
Marshaller marshaller = null;
QueryParam query;
HeaderParam header;
MatrixParam matrix;
PathParam uriParam;
CookieParam cookie;
FormParam formParam;
if ((query = FindAnnotation.findAnnotation(annotations, QueryParam.class)) != null) {
marshaller = new QueryParamMarshaller(query.value());
} else if ((header = FindAnnotation.findAnnotation(annotations, HeaderParam.class)) != null) {
marshaller = new HeaderParamMarshaller(header.value());
} else if ((cookie = FindAnnotation.findAnnotation(annotations, CookieParam.class)) != null) {
marshaller = new CookieParamMarshaller(cookie.value());
} else if ((uriParam = FindAnnotation.findAnnotation(annotations, PathParam.class)) != null) {
marshaller = new PathParamMarshaller(uriParam.value());
} else if ((matrix = FindAnnotation.findAnnotation(annotations, MatrixParam.class)) != null) {
marshaller = new MatrixParamMarshaller(matrix.value());
} else if ((formParam = FindAnnotation.findAnnotation(annotations, FormParam.class)) != null) {
marshaller = new FormParamMarshaller(formParam.value());
} else if ((FindAnnotation.findAnnotation(annotations, Context.class)) != null) {
marshaller = new NOOPMarshaller();
} else if (type.equals(Cookie.class)) {
marshaller = new CookieParamMarshaller(null);
} else if (!ignoreBody) {
MediaType mediaType = MediaTypeHelper.getConsumes(declaring, target);
if (mediaType == null)
mediaType = defaultConsumes;
if (mediaType == null) {
throw new RuntimeException("You must define a @Consumes type on your client method or interface, or supply a default");
}
marshaller = new MessageBodyParameterMarshaller(mediaType, type, genericType, annotations);
}
return marshaller;
}Example 28
| Project: RRA-master File: JaxRsControllerImpl.java View source code |
@POST
@Path("/agent")
public Response userAgentMethod(String requestEntity, @HeaderParam("user-agent") String userAgentRequest) {
System.out.println("isChrome " + getClientProperty().isChrome(httpHeader));
System.out.println("isFirefox " + getClientProperty().isFirefox(httpHeader));
System.out.println("isTablet " + getClientProperty().isTablet(httpHeader));
System.out.println("isMobile " + getClientProperty().isMobile(httpHeader));
System.out.println("isWebKit " + getClientProperty().isWebKit(httpHeader));
return Response.status(200).entity(userAgentRequest).build();
}Example 29
| Project: schema-repo-master File: RESTRepository.java View source code |
/**
* Returns all schemas in the given subject, serialized with
* {@link org.schemarepo.RepositoryUtil#schemasToString(Iterable)}
*
* @param subject
* The name of the subject
* @return all schemas in the subject. Return a 404 Not Found if there is no such subject
*/
@GET
@Path("{subject}/all")
public Response allSchemaEntries(@HeaderParam("Accept") String mediaType, @PathParam("subject") String subject) {
Subject s = repo.lookup(subject);
if (null == s) {
throw new NotFoundException(MessageStrings.SUBJECT_DOES_NOT_EXIST_ERROR);
}
Renderer renderer = getRenderer(mediaType);
return Response.ok(renderer.renderSchemas(s.allEntries()), renderer.getMediaType()).build();
}Example 30
| Project: sislegis-app-master File: ProposicaoEndpoint.java View source code |
@POST
@Path("/follow/{id:[0-9]+}")
public Response follow(@PathParam("id") Long id, @HeaderParam("Authorization") String authorization) {
try {
Usuario user = controleUsuarioAutenticado.carregaUsuarioAutenticado(authorization);
proposicaoService.followProposicao(user, id);
return Response.noContent().build();
} catch (Exception e) {
e.printStackTrace();
return Response.status(Response.Status.BAD_REQUEST).build();
}
}Example 31
| Project: UniversalCustomSteps-master File: Users.java View source code |
/**
* Logs a user in
* @param user data comes from POST request body
* @param userAgent
* @return a response with a {@link Session} object
* @throws Exception
*/
@POST
@Path("/login")
public synchronized Response login(User user, @HeaderParam("user-agent") String userAgent) throws Exception {
if (user == null)
throw new ApiException(Constants.Strings.MISSING_CONTENT_BODY, Status.NOT_ACCEPTABLE.getStatusCode());
user.validate(new Validation(true, true, false));
UserPassword savedUserPassword = UserPassword.fromUsername(user.getUsername());
UserPassword originalUserPassword = new UserPassword(user.getPassword().getBytes(), savedUserPassword.salt);
if (!savedUserPassword.equals(originalUserPassword))
throw new ApiException(Constants.Strings.INVALID_CREDENTIALS, Status.FORBIDDEN.getStatusCode());
Session session = new Session(savedUserPassword.userUuid, userAgent);
session.save();
return Response.ok(session).build();
}Example 32
| Project: airlift-master File: MBeanServerResource.java View source code |
@POST
@Path("{method}")
public Response invoke(@PathParam("method") String method, InputStream in, @HeaderParam("Authorization") String authHeader) throws Exception {
if (credentials != null) {
if (!credentials.authenticate(HttpMBeanServerCredentials.fromBasicAuthHeader(authHeader))) {
return Response.status(Status.UNAUTHORIZED).entity(createExceptionResponse(new SecurityException("Invalid credentials"))).build();
}
}
if (method == null) {
return Response.status(Status.BAD_REQUEST).entity(createExceptionResponse(new NullPointerException("method is null"))).build();
}
Object[] args;
try {
args = (Object[]) new ObjectInputStream(in).readObject();
} catch (Exception e) {
return Response.status(Status.BAD_REQUEST).entity(createExceptionResponse(new IllegalArgumentException("Request does not contain a serialized Object[]"))).build();
}
try {
Object result = null;
if ("getMBeanInfo".equals(method)) {
result = mbeanServer.getMBeanInfo((ObjectName) args[0]);
} else if ("queryMBeans".equals(method)) {
result = mbeanServer.queryMBeans((ObjectName) args[0], (QueryExp) args[1]);
} else if ("queryNames".equals(method)) {
result = mbeanServer.queryNames((ObjectName) args[0], (QueryExp) args[1]);
} else if ("getAttribute".equals(method)) {
result = mbeanServer.getAttribute((ObjectName) args[0], (String) args[1]);
} else if ("getAttributes".equals(method)) {
result = mbeanServer.getAttributes((ObjectName) args[0], (String[]) args[1]);
} else if ("setAttribute".equals(method)) {
mbeanServer.setAttribute((ObjectName) args[0], (Attribute) args[1]);
} else if ("setAttributes".equals(method)) {
result = mbeanServer.setAttributes((ObjectName) args[0], (AttributeList) args[1]);
} else if ("invoke".equals(method)) {
result = mbeanServer.invoke((ObjectName) args[0], (String) args[1], (Object[]) args[2], (String[]) args[3]);
} else if ("getMBeanCount".equals(method)) {
result = mbeanServer.getMBeanCount();
} else if ("isRegistered".equals(method)) {
result = mbeanServer.isRegistered((ObjectName) args[0]);
} else if ("getObjectInstance".equals(method)) {
result = mbeanServer.getObjectInstance((ObjectName) args[0]);
} else if ("getDefaultDomain".equals(method)) {
result = mbeanServer.getDefaultDomain();
} else if ("getDomains".equals(method)) {
result = mbeanServer.getDomains();
} else if ("isInstanceOf".equals(method)) {
result = mbeanServer.isInstanceOf((ObjectName) args[0], (String) args[1]);
} else {
return Response.status(Status.BAD_REQUEST).entity(createExceptionResponse(new IllegalArgumentException("Unknown method " + method))).build();
}
return Response.ok(createSuccessResponse(result)).build();
} catch (Exception e) {
return Response.status(Status.INTERNAL_SERVER_ERROR).entity(createExceptionResponse(e)).build();
} catch (Error e) {
return Response.status(Status.INTERNAL_SERVER_ERROR).entity(createExceptionResponse(new JMXServerErrorException("Internal error", e))).build();
}
}Example 33
| Project: apis-master File: RevokeResource.java View source code |
@POST
public Response revokeAccessToken(@HeaderParam("Authorization") String authorization, final MultivaluedMap<String, String> formParameters) {
String accessToken;
Client client;
AccessTokenRequest accessTokenRequest = AccessTokenRequest.fromMultiValuedFormParameters(formParameters);
BasicAuthCredentials credentials = getClientCredentials(authorization, accessTokenRequest);
try {
client = validateClient(credentials);
List<String> params = formParameters.get("token");
accessToken = CollectionUtils.isEmpty(params) ? null : params.get(0);
} catch (ValidationResponseException e) {
ValidationResponse validationResponse = e.v;
return Response.status(Status.BAD_REQUEST).entity(new ErrorResponse(validationResponse.getValue(), validationResponse.getDescription())).build();
}
AccessToken token = accessTokenRepository.findByTokenAndClient(accessToken, client);
if (token == null) {
LOG.info("Access token {} not found for client '{}'. Will return OK however.", accessToken, client.getClientId());
return Response.ok().build();
}
accessTokenRepository.delete(token);
return Response.ok().build();
}Example 34
| Project: astroboa-master File: RepositoryLocator.java View source code |
@Path("{repositoryId}")
public ResourceLocator connectToAstroboaRepository(@HeaderParam("Authorization") String authorization, @PathParam("repositoryId") String repositoryId, @Context ServletContext servletContext) {
if (StringUtils.isBlank(repositoryId)) {
throw new WebApplicationException(HttpURLConnection.HTTP_NOT_FOUND);
}
try {
AstroboaClient astroboaClient = null;
long start = System.currentTimeMillis();
if (authorization != null) {
String cacheKey = authorization + repositoryId;
astroboaClient = AstroboaClientCache.Instance.get(cacheKey);
if (astroboaClient == null) {
String encodedUsernamePass = authorization.substring(5);
String usernamePass = Base64.base64Decode(encodedUsernamePass);
String[] usernamePassSplitted = usernamePass.split(":");
if (usernamePassSplitted.length == 2) {
astroboaClient = new AstroboaClient(AstroboaClient.INTERNAL_CONNECTION);
AstroboaCredentials credentials = new AstroboaCredentials(usernamePassSplitted[0], usernamePassSplitted[1]);
astroboaClient.login(repositoryId, credentials);
astroboaClient = AstroboaClientCache.Instance.cache(astroboaClient, cacheKey);
} else {
logger.error("provided authorization in header (BASIC AUTH) cannot be decoded to username and password. Encoded Authorization String found in header is: " + authorization);
throw new WebApplicationException(HttpURLConnection.HTTP_UNAUTHORIZED);
}
}
} else // login as anonymous
{
final String anonymousCacheKey = repositoryId + IdentityPrincipal.ANONYMOUS;
astroboaClient = AstroboaClientCache.Instance.get(anonymousCacheKey);
if (astroboaClient == null) {
astroboaClient = new AstroboaClient(AstroboaClient.INTERNAL_CONNECTION);
String permanentKey = retrievePermanentKeyForAnonymousUser(repositoryId, servletContext);
astroboaClient.loginAsAnonymous(repositoryId, permanentKey);
astroboaClient = AstroboaClientCache.Instance.cache(astroboaClient, anonymousCacheKey);
}
}
logger.debug("Retrieve/Create astroboa repository client {} in {}", System.identityHashCode(astroboaClient), DurationFormatUtils.formatDurationHMS(System.currentTimeMillis() - start));
return new ResourceLocator(astroboaClient);
} catch (CmsInvalidPasswordException e) {
logger.error("Login to Astroboa Repository was not successfull");
throw new WebApplicationException(HttpURLConnection.HTTP_UNAUTHORIZED);
} catch (Exception e) {
logger.error("A problem occured while connecting repository client to Astroboa Repository", e);
throw new WebApplicationException(HttpURLConnection.HTTP_NOT_FOUND);
}
}Example 35
| Project: cloud-master File: TokensResource.java View source code |
@GET
@Produces({ JSON })
public Response getTokenInfo(@HeaderParam("x-auth-token") String authToken, @HeaderParam("x-subject-token") String subjectToken) throws CloudException {
if (Strings.isNullOrEmpty(authToken) || Strings.isNullOrEmpty(subjectToken)) {
throw new WebApplicationException(Status.BAD_REQUEST);
}
if (!authToken.equals(subjectToken)) {
// For now, we only allow same-token auth
throw new UnsupportedOperationException();
}
AuthenticatedUser auth = loginService.authenticate(authToken);
if (auth == null) {
throw new WebApplicationException(Status.UNAUTHORIZED);
}
TokenInfo subject = tokenService.findValidToken(subjectToken);
if (subject == null) {
throw new WebApplicationException(Status.NOT_FOUND);
}
ResponseBuilder response = Response.ok();
response.entity(buildTokenModel(subject));
return response.build();
}Example 36
| Project: cloud-odata-java-master File: ODataSubLocator.java View source code |
@POST
public Response handlePost(@HeaderParam("X-HTTP-Method") final String xHttpMethod) throws ODataException {
Response response;
if (xHttpMethod == null) {
response = handle(ODataHttpMethod.POST);
} else {
/* tunneling */
if ("MERGE".equals(xHttpMethod)) {
response = handle(ODataHttpMethod.MERGE);
} else if ("PATCH".equals(xHttpMethod)) {
response = handle(ODataHttpMethod.PATCH);
} else if (HttpMethod.DELETE.equals(xHttpMethod)) {
response = handle(ODataHttpMethod.DELETE);
} else if (HttpMethod.PUT.equals(xHttpMethod)) {
response = handle(ODataHttpMethod.PUT);
} else if (HttpMethod.GET.equals(xHttpMethod)) {
response = handle(ODataHttpMethod.GET);
} else if (HttpMethod.POST.equals(xHttpMethod)) {
response = handle(ODataHttpMethod.POST);
} else if (HttpMethod.HEAD.equals(xHttpMethod)) {
response = handleHead();
} else if (HttpMethod.OPTIONS.equals(xHttpMethod)) {
response = handleOptions();
} else {
response = returnNotImplementedResponse(ODataNotImplementedException.TUNNELING);
}
}
return response;
}Example 37
| Project: cxf-master File: JAXRSClientFactoryBean.java View source code |
@SuppressWarnings("unchecked")
@Override
public <T> ParamConverter<T> getConverter(Class<T> cls, Type t, Annotation[] anns) {
if (cls == String.class && AnnotationUtils.getAnnotation(anns, HeaderParam.class) == null && AnnotationUtils.getAnnotation(anns, CookieParam.class) == null) {
return (ParamConverter<T>) new UrlEncodingParamConverter(encodeClientParametersList);
} else {
return null;
}
}Example 38
| Project: eureka-master File: InstanceResource.java View source code |
/**
* A put request for renewing lease from a client instance.
*
* @param isReplication
* a header parameter containing information whether this is
* replicated from other nodes.
* @param overriddenStatus
* overridden status if any.
* @param status
* the {@link InstanceStatus} of the instance.
* @param lastDirtyTimestamp
* last timestamp when this instance information was updated.
* @return response indicating whether the operation was a success or
* failure.
*/
@PUT
public Response renewLease(@HeaderParam(PeerEurekaNode.HEADER_REPLICATION) String isReplication, @QueryParam("overriddenstatus") String overriddenStatus, @QueryParam("status") String status, @QueryParam("lastDirtyTimestamp") String lastDirtyTimestamp) {
boolean isFromReplicaNode = "true".equals(isReplication);
boolean isSuccess = registry.renew(app.getName(), id, isFromReplicaNode);
// Not found in the registry, immediately ask for a register
if (!isSuccess) {
logger.warn("Not Found (Renew): {} - {}", app.getName(), id);
return Response.status(Status.NOT_FOUND).build();
}
// Check if we need to sync based on dirty time stamp, the client
// instance might have changed some value
Response response = null;
if (lastDirtyTimestamp != null && serverConfig.shouldSyncWhenTimestampDiffers()) {
response = this.validateDirtyTimestamp(Long.valueOf(lastDirtyTimestamp), isFromReplicaNode);
// Store the overridden status since the validation found out the node that replicates wins
if (response.getStatus() == Response.Status.NOT_FOUND.getStatusCode() && (overriddenStatus != null) && !(InstanceStatus.UNKNOWN.name().equals(overriddenStatus)) && isFromReplicaNode) {
registry.storeOverriddenStatusIfRequired(app.getAppName(), id, InstanceStatus.valueOf(overriddenStatus));
}
} else {
response = Response.ok().build();
}
logger.debug("Found (Renew): {} - {}; reply status={}" + app.getName(), id, response.getStatus());
return response;
}Example 39
| Project: gyrex-jaxrs-application-master File: HeaderParamInjectableProvider.java View source code |
public Injectable getInjectable(ComponentContext ic, HeaderParam a, Parameter c) {
String parameterName = c.getSourceName();
if (parameterName == null || parameterName.length() == 0) {
// Invalid header parameter name
return null;
}
MultivaluedParameterExtractor e = get(c);
if (e == null)
return null;
return new HeaderParamInjectable(e);
}Example 40
| Project: io-master File: ODataEntitiesResource.java View source code |
/**
* @param uriInfo UriInfo
* @param accept Acceptヘッダ
* @param format $format パラメタ
* @param callback コール�ック
* @param skipToken スã‚ップトークン
* @param q 全文検索パラメタ
* @return JAX-RS Response
*/
@GET
public Response listEntities(@Context UriInfo uriInfo, @HeaderParam(HttpHeaders.ACCEPT) final String accept, @QueryParam("$format") String format, @QueryParam("$callback") final String callback, @QueryParam("$skiptoken") final String skipToken, @QueryParam("q") final String q) {
// アクセス制御
this.odataResource.checkAccessContext(this.accessContext, this.odataResource.getNecessaryReadPrivilege(getEntitySetName()));
// リクエストã?®å?–å¾—ã‚’Producerã?«ä¾?é ¼
EntitiesResponse resp = getEntities(uriInfo, q);
StringWriter sw = new StringWriter();
// $format�Acceptヘッダ�値�ら出力形�を決定
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
MediaType contentType = decideOutputFormat(accept, format);
acceptableMediaTypes.add(contentType);
FormatWriter<EntitiesResponse> fw = DcFormatWriterFactory.getFormatWriter(EntitiesResponse.class, acceptableMediaTypes, null, callback);
UriInfo uriInfo2 = DcCoreUtils.createUriInfo(uriInfo, 1);
fw.write(uriInfo2, sw, resp);
String entity = null;
entity = sw.toString();
// 制御コード�エスケープ処�
entity = escapeResponsebody(entity);
// TODO remove this hack, check whether we are Version 2.0 compatible anyway
ODataVersion version = null;
version = ODataVersion.V2;
return Response.ok(entity, fw.getContentType()).header(ODataConstants.Headers.DATA_SERVICE_VERSION, version.asString).build();
}Example 41
| Project: olingo-odata2-master File: ODataSubLocator.java View source code |
@POST
public Response handlePost(@HeaderParam("X-HTTP-Method") final String xHttpMethod) throws ODataException {
Response response;
if (xHttpMethod == null) {
response = handle(ODataHttpMethod.POST);
} else {
/* tunneling */
if ("MERGE".equals(xHttpMethod)) {
response = handle(ODataHttpMethod.MERGE);
} else if ("PATCH".equals(xHttpMethod)) {
response = handle(ODataHttpMethod.PATCH);
} else if (HttpMethod.DELETE.equals(xHttpMethod)) {
response = handle(ODataHttpMethod.DELETE);
} else if (HttpMethod.PUT.equals(xHttpMethod)) {
response = handle(ODataHttpMethod.PUT);
} else if (HttpMethod.GET.equals(xHttpMethod)) {
response = handle(ODataHttpMethod.GET);
} else if (HttpMethod.POST.equals(xHttpMethod)) {
response = handle(ODataHttpMethod.POST);
} else if (HttpMethod.HEAD.equals(xHttpMethod)) {
response = handleHead();
} else if (HttpMethod.OPTIONS.equals(xHttpMethod)) {
response = handleOptions();
} else {
response = returnNotImplementedResponse(ODataNotImplementedException.TUNNELING);
}
}
return response;
}Example 42
| Project: OpenBaas-master File: VideoResource.java View source code |
// *** CREATE *** //
/**
* Uploads an video File.
*
* @param request
* @param headers
* @param inputJsonObj
* @return
*/
@POST
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
public Response uploadVideo(@Context HttpHeaders hh, @Context UriInfo ui, @FormDataParam(Const.FILE) InputStream uploadedInputStream, @FormDataParam(Const.FILE) FormDataContentDisposition fileDetail, @HeaderParam(value = Const.LOCATION) String location, @FormDataParam(Const.MESSAGEID) String messageId) {
Response response = null;
if (!sessionMid.checkAppForToken(Utils.getSessionToken(hh), appId))
return Response.status(Status.UNAUTHORIZED).entity(new Error("Action in wrong app: " + appId)).build();
int code = Utils.treatParameters(ui, hh);
if (code == 1) {
String userId = sessionMid.getUserIdUsingSessionToken(Utils.getSessionToken(hh));
Result res = mediaMid.createMedia(uploadedInputStream, fileDetail, appId, userId, ModelEnum.video, location, Metadata.getNewMetadata(location), messageId);
if (res == null || res.getData() == null)
response = Response.status(Status.BAD_REQUEST).entity(new Error(appId)).build();
else
response = Response.status(Status.OK).entity(res).build();
} else if (code == -2) {
response = Response.status(Status.FORBIDDEN).entity(new Error("Invalid Session Token.")).build();
} else if (code == -1)
response = Response.status(Status.BAD_REQUEST).entity(new Error("Error handling the request.")).build();
return response;
}Example 43
| Project: oxAuth-master File: RptStatusWS.java View source code |
@POST
@Produces({ UmaConstants.JSON_MEDIA_TYPE })
@ApiOperation(value = "The resource server MUST determine a received RPT's status, including both whether it is active and, if so, its associated authorization data, before giving or refusing access to the client. An RPT is associated with a set of authorization data that governs whether the client is authorized for access. The token's nature and format are dictated by its profile; the profile might allow it to be self-contained, such that the resource server is able to determine its status locally, or might require or allow the resource server to make a run-time introspection request of the authorization server that issued the token.", produces = UmaConstants.JSON_MEDIA_TYPE, notes = "The endpoint MAY allow other parameters to provide further context to\n" + " the query. For instance, an authorization service may need to know\n" + " the IP address of the client accessing the protected resource in\n" + " order to determine the appropriateness of the token being presented.\n" + "\n" + " To prevent unauthorized token scanning attacks, the endpoint MUST\n" + " also require some form of authorization to access this endpoint, such\n" + " as client authentication as described in OAuth 2.0 [RFC6749] or a\n" + " separate OAuth 2.0 access token such as the bearer token described in\n" + " OAuth 2.0 Bearer Token Usage [RFC6750]. The methods of managing and\n" + " validating these authentication credentials are out of scope of this\n" + " specification.\n")
@ApiResponses(value = { @ApiResponse(code = 401, message = "Unauthorized") })
public Response requestRptStatus(@HeaderParam("Authorization") String authorization, @FormParam("token") @ApiParam(value = "The string value of the token. For access tokens,\n" + " this is the \"access_token\" value returned from the token endpoint\n" + " defined in OAuth 2.0 [RFC6749] section 5.1. For refresh tokens,\n" + " this is the \"refresh_token\" value returned from the token endpoint\n" + " as defined in OAuth 2.0 [RFC6749] section 5.1. Other token types\n" + " are outside the scope of this specification.", required = true) String rptAsString, @FormParam("token_type_hint") @ApiParam(value = "A hint about the type of the token\n" + " submitted for introspection. The protected resource re MAY pass\n" + " this parameter in order to help the authorization server to\n" + " optimize the token lookup. If the server is unable to locate the\n" + " token using the given hint, it MUST extend its search across all\n" + " of its supported token types. An authorization server MAY ignore\n" + " this parameter, particularly if it is able to detect the token\n" + " type automatically. Values for this field are defined in OAuth\n" + " Token Revocation [RFC7009].", required = false) String tokenTypeHint) {
try {
umaValidationService.assertHasProtectionScope(authorization);
final UmaRPT rpt = rptManager.getRPTByCode(rptAsString);
if (rpt != null && AbstractRPTManager.isGat(rpt.getCode())) {
return gatResponse(rpt);
}
if (!isValid(rpt)) {
return Response.status(Response.Status.OK).entity(new RptIntrospectionResponse(false)).cacheControl(ServerUtil.cacheControl(true)).build();
}
final List<UmaPermission> permissions = buildStatusResponsePermissions(rpt);
// active status
final RptIntrospectionResponse statusResponse = new RptIntrospectionResponse();
statusResponse.setActive(true);
statusResponse.setExpiresAt(rpt.getExpirationDate());
statusResponse.setIssuedAt(rpt.getCreationDate());
statusResponse.setPermissions(permissions);
// convert manually to avoid possible conflict between resteasy providers, e.g. jettison, jackson
final String entity = ServerUtil.asJson(statusResponse);
return Response.status(Response.Status.OK).entity(entity).cacheControl(ServerUtil.cacheControl(true)).build();
} catch (Exception ex) {
log.error("Exception happened", ex);
if (ex instanceof WebApplicationException) {
throw (WebApplicationException) ex;
}
throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorResponseFactory.getUmaJsonErrorResponse(UmaErrorResponseType.SERVER_ERROR)).build());
}
}Example 44
| Project: presto-master File: TaskResource.java View source code |
@GET
@Path("{taskId}")
@Produces(MediaType.APPLICATION_JSON)
public void getTaskInfo(@PathParam("taskId") final TaskId taskId, @HeaderParam(PRESTO_CURRENT_STATE) TaskState currentState, @HeaderParam(PRESTO_MAX_WAIT) Duration maxWait, @Context UriInfo uriInfo, @Suspended AsyncResponse asyncResponse) {
requireNonNull(taskId, "taskId is null");
if (currentState == null || maxWait == null) {
TaskInfo taskInfo = taskManager.getTaskInfo(taskId);
if (shouldSummarize(uriInfo)) {
taskInfo = taskInfo.summarize();
}
asyncResponse.resume(taskInfo);
return;
}
Duration waitTime = randomizeWaitTime(maxWait);
ListenableFuture<TaskInfo> futureTaskInfo = addTimeout(taskManager.getTaskInfo(taskId, currentState), () -> taskManager.getTaskInfo(taskId), waitTime, timeoutExecutor);
if (shouldSummarize(uriInfo)) {
futureTaskInfo = Futures.transform(futureTaskInfo, TaskInfo::summarize);
}
// For hard timeout, add an additional time to max wait for thread scheduling contention and GC
Duration timeout = new Duration(waitTime.toMillis() + ADDITIONAL_WAIT_TIME.toMillis(), MILLISECONDS);
bindAsyncResponse(asyncResponse, futureTaskInfo, responseExecutor).withTimeout(timeout);
}Example 45
| Project: schema-registry-master File: SubjectVersionsResource.java View source code |
@POST
@PerformanceMetric("subjects.versions.register")
public void register(@Suspended final AsyncResponse asyncResponse, @HeaderParam("Content-Type") final String contentType, @HeaderParam("Accept") final String accept, @PathParam("subject") String subjectName, @NotNull RegisterSchemaRequest request) {
Map<String, String> headerProperties = new HashMap<String, String>();
headerProperties.put("Content-Type", contentType);
headerProperties.put("Accept", accept);
Schema schema = new Schema(subjectName, 0, 0, request.getSchema());
int id = 0;
try {
id = schemaRegistry.registerOrForward(subjectName, schema, headerProperties);
} catch (InvalidSchemaException e) {
throw Errors.invalidAvroException("Input schema is an invalid Avro schema", e);
} catch (SchemaRegistryTimeoutException e) {
throw Errors.operationTimeoutException("Register operation timed out", e);
} catch (SchemaRegistryStoreException e) {
throw Errors.storeException("Register schema operation failed while writing" + " to the Kafka store", e);
} catch (SchemaRegistryRequestForwardingException e) {
throw Errors.requestForwardingFailedException("Error while forwarding register schema request" + " to the master", e);
} catch (IncompatibleSchemaException e) {
throw Errors.incompatibleSchemaException("Schema being registered is incompatible with an" + " earlier schema", e);
} catch (UnknownMasterException e) {
throw Errors.unknownMasterException("Master not known.", e);
} catch (SchemaRegistryException e) {
throw Errors.schemaRegistryException("Error while registering schema", e);
}
RegisterSchemaResponse registerSchemaResponse = new RegisterSchemaResponse();
registerSchemaResponse.setId(id);
asyncResponse.resume(registerSchemaResponse);
}Example 46
| Project: smart-cms-master File: WorkspaceVariationResource.java View source code |
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public Response put(com.smartitengineering.cms.ws.common.domains.ResourceTemplate template, @HeaderParam(HttpHeaders.IF_MATCH) String ifMatchHeader) {
ResponseBuilder builder;
WorkspaceId id = workspace.getId();
if (this.template == null) {
final WorkspaceAPI workspaceApi = SmartContentAPI.getInstance().getWorkspaceApi();
VariationTemplate created = workspaceApi.putVariationTemplate(workspaceApi.createWorkspaceId(id.getGlobalNamespace(), id.getName()), varName, TemplateType.valueOf(template.getTemplateType()), template.getTemplate());
if (created != null) {
UriBuilder uriBuilder = getAbsoluteURIBuilder().path(WorkspaceResource.class).path(WorkspaceResource.PATH_VARIATIONS).path("name").path(varName);
builder = Response.created(uriBuilder.build(id.getGlobalNamespace(), id.getName()));
} else {
builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
}
} else {
if (StringUtils.isBlank(ifMatchHeader)) {
return Response.status(Status.PRECONDITION_FAILED).build();
}
Date lastModifiedDate = this.template.getLastModifiedDate();
EntityTag entityTag = new EntityTag(WorkspaceRepresentationResource.getETag(this.template));
builder = getContext().getRequest().evaluatePreconditions(lastModifiedDate, entityTag);
if (builder == null) {
final WorkspaceAPI workspaceApi = SmartContentAPI.getInstance().getWorkspaceApi();
VariationTemplate put = workspaceApi.putVariationTemplate(workspaceApi.createWorkspaceId(id.getGlobalNamespace(), id.getName()), varName, TemplateType.valueOf(template.getTemplateType()), template.getTemplate());
if (put != null) {
builder = Response.status(Status.ACCEPTED).location(getUriInfo().getRequestUri());
} else {
builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
}
}
}
return builder.build();
}Example 47
| Project: smart-event-hub-master File: ChannelHubResource.java View source code |
@Broadcast
@POST
@Cluster(name = "EventHub", value = JGroupsFilter.class)
public Response broadcast(@HeaderParam("Content-type") String contentType, String message) {
checkAuthToken();
checkChannelExistence();
final String eventContentType;
//HTTP Request entity body can not be blank
if (StringUtils.isBlank(message)) {
return Response.status(Status.BAD_REQUEST).build();
}
final boolean isHtmlPost;
if (StringUtils.isBlank(contentType)) {
eventContentType = MediaType.APPLICATION_OCTET_STREAM;
isHtmlPost = false;
} else if (contentType.equals(MediaType.APPLICATION_FORM_URLENCODED)) {
eventContentType = MediaType.APPLICATION_OCTET_STREAM;
isHtmlPost = true;
try {
//Will search for the first '=' if not found will take the whole string
final int startIndex = message.indexOf("=") + 1;
//Consider the first '=' as the start of a value point and take rest as value
final String realMsg = message.substring(startIndex);
//Decode the message to ignore the form encodings and make them human readable
message = URLDecoder.decode(realMsg, "UTF-8");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
} else {
eventContentType = contentType;
isHtmlPost = false;
}
Event event = APIFactory.getEventBuilder().eventContent(APIFactory.getContent(eventContentType, IOUtils.toInputStream(message))).build();
final Channel channel = HubPersistentStorerSPI.getInstance().getStorer().getChannel(channelName);
event = HubPersistentStorerSPI.getInstance().getStorer().create(channel, event);
//Add a new line at the end of the message to ensure that the message is flushed to its listeners
message = message + "\n";
Broadcastable broadcastable = new Broadcastable(message, broadcaster);
ResponseBuilder builder = Response.ok(broadcastable);
builder.location(getAbsoluteURIBuilder().path(EventResource.class).build(event.getPlaceholderId()));
if (isHtmlPost) {
builder.status(Response.Status.SEE_OTHER);
builder.location(getAbsoluteURIBuilder().path(ChannelEventsResource.class).build(channelName));
}
return builder.build();
}Example 48
| Project: SmartHome-master File: ThingTypeResource.java View source code |
@GET
@RolesAllowed({ Role.USER })
@Path("/{thingTypeUID}")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Gets thing type by UID.", response = ThingTypeDTO.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Thing type with provided thingTypeUID does not exist.", response = ThingTypeDTO.class), @ApiResponse(code = 404, message = "No content") })
public Response getByUID(@PathParam("thingTypeUID") @ApiParam(value = "thingTypeUID") String thingTypeUID, @HeaderParam(HttpHeaders.ACCEPT_LANGUAGE) @ApiParam(value = HttpHeaders.ACCEPT_LANGUAGE) String language) {
Locale locale = LocaleUtil.getLocale(language);
ThingType thingType = thingTypeRegistry.getThingType(new ThingTypeUID(thingTypeUID), locale);
if (thingType != null) {
return Response.ok(convertToThingTypeDTO(thingType, locale)).build();
} else {
return Response.noContent().build();
}
}Example 49
| Project: spring-rest-invoker-master File: JaxRsAnnotationMethodInspector.java View source code |
/*
* RequestMapping -> PATH, GET, POST RequestParam -> QueryParam PathVariable
* -> PathParam RequestBody -> BeanParam RequestPart -> FormParam
*/
@Override
public UrlMapping inspect(Method method, Object[] args) {
UrlMapping urlMapping = new UrlMapping();
Path path = AnnotationUtils.findAnnotation(method, Path.class);
if (path == null || path.value() == null)
return null;
urlMapping.setUrl(resolveExpression(path.value()));
if (urlMapping.getUrl() == null)
throw new MappingDeclarationException("Missing @Path on method " + method, method, path, -1);
Set<HttpMethod> httpMethods = new HashSet<>();
if (AnnotationUtils.findAnnotation(method, POST.class) != null)
httpMethods.add(HttpMethod.POST);
if (AnnotationUtils.findAnnotation(method, PUT.class) != null)
httpMethods.add(HttpMethod.PUT);
if (AnnotationUtils.findAnnotation(method, DELETE.class) != null)
httpMethods.add(HttpMethod.DELETE);
if (httpMethods.size() > 1)
throw new MappingDeclarationException("Multiple HTTP methods specified on " + method.toGenericString(), method, null, -1);
if (httpMethods.size() == 1)
urlMapping.setHttpMethod(httpMethods.iterator().next());
else
urlMapping.setHttpMethod(HttpMethod.GET);
Produces produces = AnnotationUtils.findAnnotation(method, Produces.class);
if (produces != null)
urlMapping.setProduces(produces.value());
Consumes consumes = AnnotationUtils.findAnnotation(method, Consumes.class);
if (consumes != null)
urlMapping.setConsumes(consumes.value());
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
if (parameterAnnotations.length != method.getParameterTypes().length)
throw new MappingDeclarationException(String.format("Annotation mismatch: method has %d parameters but %d have been annotated on %s", parameterAnnotations.length, method.getParameterTypes().length, method.toString()), method, null, -1);
int i = 0;
for (Annotation[] annotations : parameterAnnotations) {
Object value = args[i];
i++;
String parameterName = "";
Type parameterType = null;
boolean parameterFound = false;
for (Annotation annotation : annotations) {
if (PathParam.class.isAssignableFrom(annotation.annotationType())) {
PathParam pv = (PathParam) annotation;
parameterName = pv.value();
urlMapping.addDescriptor(new MethodParameterDescriptor(Type.pathVariable, parameterName, value, method, i));
parameterFound = true;
}
if (QueryParam.class.isAssignableFrom(annotation.annotationType())) {
QueryParam pv = (QueryParam) annotation;
parameterName = pv.value();
urlMapping.addDescriptor(new MethodParameterDescriptor(Type.httpParameter, parameterName, value, method, i));
parameterFound = true;
}
if (HeaderParam.class.isAssignableFrom(annotation.annotationType())) {
HeaderParam pv = (HeaderParam) annotation;
parameterName = pv.value();
parameterFound = true;
parameterType = Type.httpHeader;
}
if (BeanParam.class.isAssignableFrom(annotation.annotationType())) {
parameterType = Type.requestBody;
parameterFound = true;
}
if (FormParam.class.isAssignableFrom(annotation.annotationType())) {
parameterType = Type.requestPart;
parameterFound = true;
}
if (CookieParam.class.isAssignableFrom(annotation.annotationType())) {
parameterType = Type.cookie;
parameterFound = true;
CookieParam cv = (CookieParam) annotation;
parameterName = cv.value();
}
}
if (!parameterFound)
throw new MappingDeclarationException(String.format("Couldn't find mapping annotation on parameter %d of method %s", i, method.toGenericString()), method, null, i);
if (parameterType != null) {
urlMapping.addDescriptor(new MethodParameterDescriptor(parameterType, parameterName, value, method, i));
}
}
return urlMapping;
}Example 50
| Project: streamflow-master File: FileResource.java View source code |
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public FileInfo createFile(@FormDataParam("file") byte[] fileContent, @FormDataParam("file") FormDataContentDisposition fileDetail, @HeaderParam("Content-type") String contentType) {
// Validate the input parameters
if (fileContent == null) {
throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("File content was specified in the request").build());
}
// Save the upload metadata for later retrieval
FileInfo fileInfo = new FileInfo();
fileInfo.setId(IDUtils.randomUUID());
fileInfo.setFileName(fileDetail.getFileName());
fileInfo.setFileSize(fileContent.length);
fileInfo.setCreated(new Date());
fileInfo.setModified(fileInfo.getCreated());
fileInfo.setContentHash(DigestUtils.md5Hex(fileContent));
try {
// Reliably detect the mime type using Tika
fileInfo.setFileType(detector.detect(new ByteArrayInputStream(fileContent), new Metadata()).toString());
} catch (IOException ex) {
fileInfo.setFileType("application/octet-stream");
}
// Persist the upload metadata after the file is successfully written
fileInfo = fileService.saveFile(fileInfo, fileContent);
return fileInfo;
}Example 51
| Project: swagger-maven-plugin-master File: JaxrsParameterExtension.java View source code |
public static SerializableParameter getParameter(Type type, SerializableParameter parameter, Annotation annotation) {
String defaultValue = "";
if (annotation instanceof DefaultValue) {
DefaultValue defaultValueAnnotation = (DefaultValue) annotation;
defaultValue = defaultValueAnnotation.value();
}
if (annotation instanceof QueryParam) {
QueryParam param = (QueryParam) annotation;
QueryParameter queryParameter = new QueryParameter().name(param.value());
if (!defaultValue.isEmpty()) {
queryParameter.setDefaultValue(defaultValue);
}
Property schema = ModelConverters.getInstance().readAsProperty(type);
if (schema != null) {
queryParameter.setProperty(schema);
}
String parameterType = queryParameter.getType();
if (parameterType == null || parameterType.equals("ref")) {
queryParameter.setType("string");
}
parameter = queryParameter;
} else if (annotation instanceof PathParam) {
PathParam param = (PathParam) annotation;
PathParameter pathParameter = new PathParameter().name(param.value());
if (!defaultValue.isEmpty()) {
pathParameter.setDefaultValue(defaultValue);
}
Property schema = ModelConverters.getInstance().readAsProperty(type);
if (schema != null) {
pathParameter.setProperty(schema);
}
String parameterType = pathParameter.getType();
if (parameterType == null || parameterType.equals("ref")) {
pathParameter.setType("string");
}
parameter = pathParameter;
} else if (annotation instanceof HeaderParam) {
HeaderParam param = (HeaderParam) annotation;
HeaderParameter headerParameter = new HeaderParameter().name(param.value());
headerParameter.setDefaultValue(defaultValue);
Property schema = ModelConverters.getInstance().readAsProperty(type);
if (schema != null) {
headerParameter.setProperty(schema);
}
String parameterType = headerParameter.getType();
if (parameterType == null || parameterType.equals("ref") || parameterType.equals("array")) {
headerParameter.setType("string");
}
parameter = headerParameter;
} else if (annotation instanceof CookieParam) {
CookieParam param = (CookieParam) annotation;
CookieParameter cookieParameter = new CookieParameter().name(param.value());
if (!defaultValue.isEmpty()) {
cookieParameter.setDefaultValue(defaultValue);
}
Property schema = ModelConverters.getInstance().readAsProperty(type);
if (schema != null) {
cookieParameter.setProperty(schema);
}
String parameterType = cookieParameter.getType();
if (parameterType == null || parameterType.equals("ref") || parameterType.equals("array")) {
cookieParameter.setType("string");
}
parameter = cookieParameter;
} else if (annotation instanceof FormParam) {
FormParam param = (FormParam) annotation;
FormParameter formParameter = new FormParameter().name(param.value());
if (!defaultValue.isEmpty()) {
formParameter.setDefaultValue(defaultValue);
}
Property schema = ModelConverters.getInstance().readAsProperty(type);
if (schema != null) {
formParameter.setProperty(schema);
}
String parameterType = formParameter.getType();
if (parameterType == null || parameterType.equals("ref") || parameterType.equals("array")) {
formParameter.setType("string");
}
parameter = formParameter;
}
//
return parameter;
}Example 52
| Project: TextSecure-Server-master File: AccountController.java View source code |
@Timed
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Path("/code/{verification_code}")
public void verifyAccount(@PathParam("verification_code") String verificationCode, @HeaderParam("Authorization") String authorizationHeader, @Valid AccountAttributes accountAttributes) throws RateLimitExceededException {
try {
AuthorizationHeader header = AuthorizationHeader.fromFullHeader(authorizationHeader);
String number = header.getNumber();
String password = header.getPassword();
rateLimiters.getVerifyLimiter().validate(number);
Optional<String> storedVerificationCode = pendingAccounts.getCodeForNumber(number);
if (!storedVerificationCode.isPresent() || !verificationCode.equals(storedVerificationCode.get())) {
throw new WebApplicationException(Response.status(403).build());
}
if (accounts.isRelayListed(number)) {
throw new WebApplicationException(Response.status(417).build());
}
createAccount(number, password, accountAttributes);
} catch (InvalidAuthorizationHeaderException e) {
logger.info("Bad Authorization Header", e);
throw new WebApplicationException(Response.status(401).build());
}
}Example 53
| Project: uma-master File: RptStatusWS.java View source code |
@POST
@Produces({ UmaConstants.JSON_MEDIA_TYPE })
@ApiOperation(value = "The resource server MUST determine a received RPT's status, including both whether it is active and, if so, its associated authorization data, before giving or refusing access to the client. An RPT is associated with a set of authorization data that governs whether the client is authorized for access. The token's nature and format are dictated by its profile; the profile might allow it to be self-contained, such that the resource server is able to determine its status locally, or might require or allow the resource server to make a run-time introspection request of the authorization server that issued the token.", produces = UmaConstants.JSON_MEDIA_TYPE, notes = "The endpoint MAY allow other parameters to provide further context to\n" + " the query. For instance, an authorization service may need to know\n" + " the IP address of the client accessing the protected resource in\n" + " order to determine the appropriateness of the token being presented.\n" + "\n" + " To prevent unauthorized token scanning attacks, the endpoint MUST\n" + " also require some form of authorization to access this endpoint, such\n" + " as client authentication as described in OAuth 2.0 [RFC6749] or a\n" + " separate OAuth 2.0 access token such as the bearer token described in\n" + " OAuth 2.0 Bearer Token Usage [RFC6750]. The methods of managing and\n" + " validating these authentication credentials are out of scope of this\n" + " specification.\n")
@ApiResponses(value = { @ApiResponse(code = 401, message = "Unauthorized") })
public Response requestRptStatus(@HeaderParam("Authorization") String authorization, @FormParam("token") @ApiParam(value = "The string value of the token. For access tokens,\n" + " this is the \"access_token\" value returned from the token endpoint\n" + " defined in OAuth 2.0 [RFC6749] section 5.1. For refresh tokens,\n" + " this is the \"refresh_token\" value returned from the token endpoint\n" + " as defined in OAuth 2.0 [RFC6749] section 5.1. Other token types\n" + " are outside the scope of this specification.", required = true) String rptAsString, @FormParam("token_type_hint") @ApiParam(value = "A hint about the type of the token\n" + " submitted for introspection. The protected resource re MAY pass\n" + " this parameter in order to help the authorization server to\n" + " optimize the token lookup. If the server is unable to locate the\n" + " token using the given hint, it MUST extend its search across all\n" + " of its supported token types. An authorization server MAY ignore\n" + " this parameter, particularly if it is able to detect the token\n" + " type automatically. Values for this field are defined in OAuth\n" + " Token Revocation [RFC7009].", required = false) String tokenTypeHint) {
try {
umaValidationService.assertHasProtectionScope(authorization);
final UmaRPT rpt = rptManager.getRPTByCode(rptAsString);
if (rpt != null && AbstractRPTManager.isGat(rpt.getCode())) {
return gatResponse(rpt);
}
if (!isValid(rpt)) {
return Response.status(Response.Status.OK).entity(new RptIntrospectionResponse(false)).cacheControl(ServerUtil.cacheControl(true)).build();
}
final List<UmaPermission> permissions = buildStatusResponsePermissions(rpt);
// active status
final RptIntrospectionResponse statusResponse = new RptIntrospectionResponse();
statusResponse.setActive(true);
statusResponse.setExpiresAt(rpt.getExpirationDate());
statusResponse.setIssuedAt(rpt.getCreationDate());
statusResponse.setPermissions(permissions);
// convert manually to avoid possible conflict between resteasy providers, e.g. jettison, jackson
final String entity = ServerUtil.asJson(statusResponse);
return Response.status(Response.Status.OK).entity(entity).cacheControl(ServerUtil.cacheControl(true)).build();
} catch (Exception ex) {
log.error("Exception happened", ex);
if (ex instanceof WebApplicationException) {
throw (WebApplicationException) ex;
}
throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorResponseFactory.getUmaJsonErrorResponse(UmaErrorResponseType.SERVER_ERROR)).build());
}
}Example 54
| Project: XPagesExtensionLibrary-master File: NoticeActionResource.java View source code |
@PUT
public // $NON-NLS-1$
Response putNoticeAction(// $NON-NLS-1$
String requestEntity, // $NON-NLS-1$
@HeaderParam("Content-Type") String contentType, @Context UriInfo uriInfo, @PathParam(NOTICE) String id, @QueryParam(URL_PARAM_ACTION_TYPE) String type) {
// $NON-NLS-1$
CALENDAR_SERVICE_LOGGER.traceEntry(this, "putNoticeAction");
CalendarService.beforeRequest(FEATURE_REST_API_CALENDAR_NOTICE, STAT_MISC);
CalendarService.verifyDatabaseContext();
if (type == null || type.length() == 0) {
// $NLX-NoticeActionResource.Actiontypenotspecified-1$
throw new WebApplicationException(CalendarService.createErrorResponse("Action type not specified.", Status.BAD_REQUEST));
}
int actionType = Utils.translateActionType(type);
if (actionType == -1) {
// $NLX-NoticeActionResource.Unknownactiontype-1$
throw new WebApplicationException(CalendarService.createErrorResponse("Unknown action type.", Status.BAD_REQUEST));
}
try {
Action action = Utils.createAction(actionType, contentType, requestEntity);
StoreFactory.getEventStore().processNoticeAction(id, action);
} catch (StoreException e) {
throw new WebApplicationException(ErrorHelper.createErrorResponse("Error processing notice action.", Utils.mapStatus(e), Utils.getExtraProps(e)));
} catch (JsonException e) {
throw new WebApplicationException(CalendarService.createErrorResponse("Error processing notice action.", Status.BAD_REQUEST));
} catch (ParseException e) {
throw new WebApplicationException(CalendarService.createErrorResponse("Error processing notice action.", Status.BAD_REQUEST));
}
ResponseBuilder builder = Response.ok();
Response response = builder.build();
// $NON-NLS-1$
CALENDAR_SERVICE_LOGGER.traceExit(this, "putNoticeAction", response);
return response;
}Example 55
| Project: abiquo-master File: PhysicalMachineResource.java View source code |
/**
* Start monitoring a physical machine.
*
* @param physicalMachine The physical machine data.
* @param auth The authentication details for the given physical machine.
* @return The monitored physical machine.
*/
@POST
public PhysicalMachineDto monitor(final PhysicalMachineDto physicalMachine, @HeaderParam(AUTH_HEADER) final String auth) {
checkSystem();
String[] credentials = getBasicAuthCredentials(auth);
PhysicalMachine pm;
if (credentials.length != 0) {
pm = vsmService.monitor(physicalMachine.getAddress(), physicalMachine.getType(), credentials[0], credentials[1]);
} else {
pm = vsmService.monitor(physicalMachine.getAddress(), physicalMachine.getType());
}
return toDto(pm);
}Example 56
| Project: activemq-artemis-master File: QueueConsumer.java View source code |
@Path("consume-next{index}")
@POST
public synchronized Response poll(@HeaderParam(Constants.WAIT_HEADER) @DefaultValue("0") long wait, @PathParam("index") long index, @Context UriInfo info) {
ActiveMQRestLogger.LOGGER.debug("Handling POST request for \"" + info.getRequestUri() + "\"");
if (closed) {
UriBuilder builder = info.getBaseUriBuilder();
builder.path(info.getMatchedURIs().get(1)).path("consume-next");
String uri = builder.build().toString();
return Response.status(307).location(URI.create(uri)).build();
}
return checkIndexAndPoll(wait, info, info.getMatchedURIs().get(1), index);
}Example 57
| Project: BitHub-master File: GithubController.java View source code |
@Timed
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Path("/commits/")
public void handleCommits(@Auth Authentication auth, @HeaderParam("X-Forwarded-For") String clientIp, @FormParam("payload") String eventString) throws IOException, UnauthorizedHookException, TransferFailedException, CoinbaseException {
authenticate(clientIp);
PushEvent event = getEventFromPayload(eventString);
if (!repositories.containsKey(event.getRepository().getUrl().toLowerCase())) {
throw new UnauthorizedHookException("Not a valid repository: " + event.getRepository().getUrl());
}
if (!event.getRef().equals(MASTER_REF)) {
logger.info("Not a push to master: " + event.getRef());
return;
}
Repository repository = event.getRepository();
String defaultMode = repositories.get(repository.getUrl().toLowerCase());
List<Commit> commits = getQualifyingCommits(event, defaultMode);
BigDecimal balance = coinbaseClient.getAccountBalance();
BigDecimal exchangeRate = coinbaseClient.getExchangeRate();
logger.info("Retrieved balance: " + balance.toPlainString());
sendPaymentsFor(repository, commits, balance, exchangeRate);
}Example 58
| Project: cassandra-rest-master File: DataResource.java View source code |
// ================================================================================================================
// Column Family Operations
// ================================================================================================================
@GET
@Path("/{keyspace}/{columnFamily}")
@Produces({ "application/json" })
public JSONArray getColumnFamily(@PathParam("keyspace") String keyspace, @PathParam("columnFamily") String columnFamily, @QueryParam("q") String query, @HeaderParam(CONSISTENCY_LEVEL_HEADER) String consistencyLevel) throws Exception {
if (logger.isDebugEnabled())
logger.debug("Listing column family [" + keyspace + "]:[" + columnFamily + "]");
logger.debug("STORAGE [" + getCassandraStorage() + "]");
logger.debug("CONFG [" + config + "]");
return getCassandraStorage().getRows(keyspace, columnFamily, query, config.getConsistencyLevel(consistencyLevel));
}Example 59
| Project: ecms-develop-master File: ThumbnailRESTService.java View source code |
/**
* Returns an image with an original size.
*
* @param repoName The repository name.
* @param workspaceName The workspace name.
* @param nodePath The node path.
* @return Response data stream.
* @throws Exception
*
* @anchor ThumbnailRESTService.getOriginImage
*/
@Path("/origin/{repoName}/{workspaceName}/{nodePath:.*}/")
@GET
public Response getOriginImage(@PathParam("repoName") String repoName, @PathParam("workspaceName") String workspaceName, @PathParam("nodePath") String nodePath, @HeaderParam("If-Modified-Since") String ifModifiedSince) throws Exception {
DateFormat dateFormat = new SimpleDateFormat(IF_MODIFIED_SINCE_DATE_FORMAT);
if (!thumbnailService_.isEnableThumbnail())
return Response.ok().header(LAST_MODIFIED_PROPERTY, dateFormat.format(new Date())).build();
Node showingNode = getShowingNode(workspaceName, getNodePath(nodePath));
Node targetNode = getTargetNode(showingNode);
if (targetNode.isNodeType("nt:file") || targetNode.isNodeType("nt:resource")) {
Node content = targetNode;
if (targetNode.isNodeType("nt:file"))
content = targetNode.getNode("jcr:content");
if (ifModifiedSince != null) {
// get last-modified-since from header
Date ifModifiedSinceDate = dateFormat.parse(ifModifiedSince);
// get last modified date of node
Date lastModifiedDate = content.getProperty("jcr:lastModified").getDate().getTime();
// Check if cached resource has not been modifed, return 304 code
if (ifModifiedSinceDate.getTime() >= lastModifiedDate.getTime()) {
return Response.notModified().build();
}
}
String mimeType = content.getProperty("jcr:mimeType").getString();
for (ComponentPlugin plugin : thumbnailService_.getComponentPlugins()) {
if (plugin instanceof ThumbnailPlugin) {
ThumbnailPlugin thumbnailPlugin = (ThumbnailPlugin) plugin;
if (thumbnailPlugin.getMimeTypes().contains(mimeType)) {
InputStream inputStream = content.getProperty("jcr:data").getStream();
return Response.ok(inputStream, "image").header(LAST_MODIFIED_PROPERTY, dateFormat.format(new Date())).build();
}
}
}
}
return Response.ok().header(LAST_MODIFIED_PROPERTY, dateFormat.format(new Date())).build();
}Example 60
| Project: errai-master File: JaxrsResourceMethodParameters.java View source code |
public static JaxrsResourceMethodParameters fromMethod(MetaMethod method, List<? extends Statement> parameterValues) {
final JaxrsResourceMethodParameters params = new JaxrsResourceMethodParameters();
int i = 0;
for (final MetaParameter param : method.getParameters()) {
final Statement paramValue = parameterValues.get(i++);
Annotation a = param.getAnnotation(PathParam.class);
if (a != null) {
params.add(PathParam.class, ((PathParam) a).value(), paramValue);
} else if ((a = param.getAnnotation(QueryParam.class)) != null) {
params.add(QueryParam.class, ((QueryParam) a).value(), paramValue);
} else if ((a = param.getAnnotation(HeaderParam.class)) != null) {
params.add(HeaderParam.class, ((HeaderParam) a).value(), paramValue);
} else if ((a = param.getAnnotation(MatrixParam.class)) != null) {
params.add(MatrixParam.class, ((MatrixParam) a).value(), paramValue);
} else if ((a = param.getAnnotation(FormParam.class)) != null) {
params.add(FormParam.class, ((FormParam) a).value(), paramValue);
} else if ((a = param.getAnnotation(CookieParam.class)) != null) {
params.add(CookieParam.class, ((CookieParam) a).value(), paramValue);
} else {
params.setEntityParameter(paramValue, method);
}
}
return params;
}Example 61
| Project: fcrepo4-master File: FedoraVersions.java View source code |
/**
* Retrieve a version of an object. The path structure is as follows
* (though these URLs are returned from getVersionList and need not be
* constructed manually):
* /versionable-node/fcr:versions/label/path/to/any/copied/unversionable/nodes
* @param rangeValue the range value
* @throws IOException if IO exception occurred
* @return the version of the object as RDF in the requested format
*/
@SuppressWarnings("resource")
@GET
@Produces({ TURTLE_WITH_CHARSET + ";qs=1.0", JSON_LD + ";qs=0.8", N3_WITH_CHARSET, N3_ALT2_WITH_CHARSET, RDF_XML, NTRIPLES, TEXT_PLAIN_WITH_CHARSET, TURTLE_X, TEXT_HTML_WITH_CHARSET, "*/*" })
public Response getVersion(@HeaderParam("Range") final String rangeValue) throws IOException {
LOGGER.trace("Getting version profile for: {} at version: {}", path, label);
checkCacheControlHeaders(request, servletResponse, resource(), session);
final RdfStream rdfStream = new DefaultRdfStream(asNode(resource()));
addResourceHttpHeaders(resource());
return getContent(rangeValue, rdfStream);
}Example 62
| Project: feign-master File: JAXRSContract.java View source code |
@Override
protected boolean processAnnotationsOnParameter(MethodMetadata data, Annotation[] annotations, int paramIndex) {
boolean isHttpParam = false;
for (Annotation parameterAnnotation : annotations) {
Class<? extends Annotation> annotationType = parameterAnnotation.annotationType();
if (annotationType == PathParam.class) {
String name = PathParam.class.cast(parameterAnnotation).value();
checkState(emptyToNull(name) != null, "PathParam.value() was empty on parameter %s", paramIndex);
nameParam(data, name, paramIndex);
isHttpParam = true;
} else if (annotationType == QueryParam.class) {
String name = QueryParam.class.cast(parameterAnnotation).value();
checkState(emptyToNull(name) != null, "QueryParam.value() was empty on parameter %s", paramIndex);
Collection<String> query = addTemplatedParam(data.template().queries().get(name), name);
data.template().query(name, query);
nameParam(data, name, paramIndex);
isHttpParam = true;
} else if (annotationType == HeaderParam.class) {
String name = HeaderParam.class.cast(parameterAnnotation).value();
checkState(emptyToNull(name) != null, "HeaderParam.value() was empty on parameter %s", paramIndex);
Collection<String> header = addTemplatedParam(data.template().headers().get(name), name);
data.template().header(name, header);
nameParam(data, name, paramIndex);
isHttpParam = true;
} else if (annotationType == FormParam.class) {
String name = FormParam.class.cast(parameterAnnotation).value();
checkState(emptyToNull(name) != null, "FormParam.value() was empty on parameter %s", paramIndex);
data.formParams().add(name);
nameParam(data, name, paramIndex);
isHttpParam = true;
}
}
return isHttpParam;
}Example 63
| Project: GamificationEngine-Kinben-master File: OrganisationApi.java View source code |
/**
* Creates a new organisation. The email address and password of one Account are used
* to connect it with this organisation. So the email address and password are mandatory for
* authentication otherwise a warning with the hint for wrong credentials is returned.
* All further Accounts which should be associated to this organisation are added with the
* method addManager.
* In the response the account's password isn't returned because of security reasons.
*
* @param name
* The name of the developer or the manager of the account.
* @param email
* The required valid email address.
* @param password
* Required header parameter associated with the email address.
* @return A Response of Organisation in JSON.
*/
@POST
@Path("/")
@TypeHint(Organisation.class)
public Response create(@QueryParam("name") String name, @QueryParam("email") @NotNull @Email String email, @HeaderParam("password") @NotNull String password) {
LOGGER.debug("create organisation requested");
String encryptedPassword = SecurityTools.encryptWithSHA512(password);
if (!accountDao.checkCredentials(email, encryptedPassword)) {
throw new CredentialException(email);
}
Organisation organisation = new Organisation(name);
organisation.addManager(accountDao.getAccount(email, encryptedPassword));
organisation.setApiKey(SecurityTools.generateApiKey());
LOGGER.debug("Organisation created");
organisationDao.insertOrganisation(organisation);
return ResponseSurrogate.created(organisation);
}Example 64
| Project: hbase-master File: TableScanResource.java View source code |
@GET
@Produces({ Constants.MIMETYPE_PROTOBUF, Constants.MIMETYPE_PROTOBUF_IETF })
public Response getProtobuf(@Context final UriInfo uriInfo, @PathParam("scanspec") final String scanSpec, @HeaderParam("Accept") final String contentType, @DefaultValue(Integer.MAX_VALUE + "") @QueryParam(Constants.SCAN_LIMIT) int userRequestedLimit, @DefaultValue("") @QueryParam(Constants.SCAN_START_ROW) String startRow, @DefaultValue("") @QueryParam(Constants.SCAN_END_ROW) String endRow, @DefaultValue("column") @QueryParam(Constants.SCAN_COLUMN) List<String> column, @DefaultValue("1") @QueryParam(Constants.SCAN_MAX_VERSIONS) int maxVersions, @DefaultValue("-1") @QueryParam(Constants.SCAN_BATCH_SIZE) int batchSize, @DefaultValue("0") @QueryParam(Constants.SCAN_START_TIME) long startTime, @DefaultValue(Long.MAX_VALUE + "") @QueryParam(Constants.SCAN_END_TIME) long endTime, @DefaultValue("true") @QueryParam(Constants.SCAN_BATCH_SIZE) boolean cacheBlocks) {
servlet.getMetrics().incrementRequests(1);
try {
int fetchSize = this.servlet.getConfiguration().getInt(Constants.SCAN_FETCH_SIZE, 10);
ProtobufStreamingUtil stream = new ProtobufStreamingUtil(this.results, contentType, userRequestedLimit, fetchSize);
servlet.getMetrics().incrementSucessfulScanRequests(1);
ResponseBuilder response = Response.ok(stream);
response.header("content-type", contentType);
return response.build();
} catch (Exception exp) {
servlet.getMetrics().incrementFailedScanRequests(1);
processException(exp);
LOG.warn(exp);
return null;
}
}Example 65
| Project: iot-server-appliances-master File: DeviceControllerService.java View source code |
@Path("/pushdata/{owner}/{type}/{id}/{time}/{key}/{value}")
@POST
public static // @Produces("application/xml")
String pushData(@PathParam("owner") String owner, @PathParam("type") String deviceType, @PathParam("id") String deviceId, @PathParam("time") Long time, @PathParam("key") String key, @PathParam("value") String value, @HeaderParam("description") String description, @Context HttpServletResponse response) {
HashMap<String, String> deviceDataMap = new HashMap<String, String>();
deviceDataMap.put("owner", owner);
deviceDataMap.put("deviceType", deviceType);
deviceDataMap.put("deviceId", deviceId);
deviceDataMap.put("time", "" + time);
deviceDataMap.put("key", key);
deviceDataMap.put("value", value);
deviceDataMap.put("description", description);
//DeviceValidator deviceChecker = new DeviceValidator();
//DeviceIdentifier dId = new DeviceIdentifier();
//dId.setId(deviceId);
//dId.setType(deviceType);
// try {
// boolean exists = deviceChecker.isExist(owner, dId);
String result = null;
// if (exists) {
try {
iotDataStore.publishIoTData(deviceDataMap);
response.setStatus(HttpStatus.SC_ACCEPTED);
result = "Data Published Succesfully...";
} catch (DeviceControllerServiceException e) {
response.setStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR);
result = "Failed to push " + description + " data to dataStore at " + dataStoreConfig.getEndPoint() + ":" + dataStoreConfig.getPort();
}
//
return result;
//
// } catch (InstantiationException e) {
// response.setStatus(500);
// return null;
// } catch (IllegalAccessException e) {
// response.setStatus(500);
// return null;
// } catch (ConfigurationException e) {
// response.setStatus(500);
// return null;
// } catch (DeviceCloudException e) {
// response.setStatus(500);
// return null;
// }
}Example 66
| Project: jersey-master File: ItemStoreResource.java View source code |
/**
* Connect or re-connect to SSE event stream.
*
* @param lastEventId Value of custom SSE HTTP <tt>{@value SseFeature#LAST_EVENT_ID_HEADER}</tt> header.
* Defaults to {@code -1} if not set.
* @return new SSE event output stream representing the (re-)established SSE client connection.
* @throws InternalServerErrorException in case replaying missed events to the reconnected output stream fails.
* @throws ServiceUnavailableException in case the reconnect delay is set to a positive value.
*/
@GET
@Path("events")
@Produces(SseFeature.SERVER_SENT_EVENTS)
public EventOutput itemEvents(@HeaderParam(SseFeature.LAST_EVENT_ID_HEADER) @DefaultValue("-1") int lastEventId) {
final EventOutput eventOutput = new EventOutput();
if (lastEventId >= 0) {
LOGGER.info("Received last event id :" + lastEventId);
// decide the reconnect handling strategy based on current reconnect delay value.
final long delay = reconnectDelay;
if (delay > 0) {
LOGGER.info("Non-zero reconnect delay [" + delay + "] - responding with HTTP 503.");
throw new ServiceUnavailableException(delay);
} else {
LOGGER.info("Zero reconnect delay - reconnecting.");
replayMissedEvents(lastEventId, eventOutput);
}
}
if (!broadcaster.add(eventOutput)) {
LOGGER.severe("!!! Unable to add new event output to the broadcaster !!!");
// let's try to force a 5s delayed client reconnect attempt
throw new ServiceUnavailableException(5L);
}
return eventOutput;
}Example 67
| Project: keycloak-master File: ClientsManagementService.java View source code |
/**
* URL invoked by adapter to register new client cluster node. Each application cluster node will invoke this URL once it joins cluster
*
* @param authorizationHeader
* @param formData
* @return
*/
@Path("register-node")
@POST
@Produces(MediaType.APPLICATION_JSON)
public Response registerNode(@HeaderParam(HttpHeaders.AUTHORIZATION) String authorizationHeader, final MultivaluedMap<String, String> formData) {
if (!checkSsl()) {
throw new ForbiddenException("HTTPS required");
}
event.event(EventType.REGISTER_NODE);
if (!realm.isEnabled()) {
event.error(Errors.REALM_DISABLED);
throw new UnauthorizedException("Realm not enabled");
}
ClientModel client = authorizeClient();
String nodeHost = getClientClusterHost(formData);
event.client(client).detail(Details.NODE_HOST, nodeHost);
logger.debugf("Registering cluster host '%s' for client '%s'", nodeHost, client.getClientId());
client.registerNode(nodeHost, Time.currentTime());
event.success();
return Response.noContent().build();
}Example 68
| Project: killbill-meter-plugin-master File: MeterResource.java View source code |
@POST
@Path("/{source:" + STRING_PATTERN + "}/{categoryName:" + STRING_PATTERN + "}/{metricName:" + STRING_PATTERN + "}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response recordUsage(@PathParam("source") final String source, @PathParam("categoryName") final String categoryName, @PathParam("metricName") final String metricName, @QueryParam(QUERY_METER_WITH_CATEGORY_AGGREGATE) @DefaultValue("false") final Boolean withAggregate, @QueryParam(QUERY_METER_TIMESTAMP) final String timestampString, @HeaderParam(HDR_CREATED_BY) final String createdBy, @HeaderParam(HDR_REASON) final String reason, @HeaderParam(HDR_COMMENT) final String comment, @javax.ws.rs.core.Context final HttpServletRequest request) {
final CallContext callContext = createContext(createdBy, reason, comment, request);
final DateTime timestamp;
if (timestampString == null) {
timestamp = clock.getUTCNow();
} else {
timestamp = DATE_TIME_FORMATTER.parseDateTime(timestampString);
}
if (withAggregate) {
meterApi.incrementUsageAndAggregate(source, categoryName, metricName, timestamp, callContext);
} else {
meterApi.incrementUsage(source, categoryName, metricName, timestamp, callContext);
}
return Response.ok().build();
}Example 69
| Project: linshare-core-master File: UploadRequestRestServiceImpl.java View source code |
@GET
@Path("/{uuid}")
@ApiOperation(value = "Find an upload request.", response = UploadRequestDto.class)
@ApiResponses({ @ApiResponse(code = 403, message = "Authentication failed.") })
@Override
public Response find(@PathParam(value = "uuid") String uuid, @HeaderParam("linshare-uploadrequest-password") String password) throws BusinessException {
logger.debug("uuid : " + uuid);
logger.debug("password : " + password);
UploadRequestDto data = uploadRequestUrlFacade.find(uuid, password);
ResponseBuilder response = Response.ok(data);
// Fixing IE cache issue.
CacheControl cc = new CacheControl();
cc.setNoCache(true);
response.cacheControl(cc);
return response.build();
}Example 70
| Project: MaritimeCloudPortalTestbed-master File: UserResource.java View source code |
// -------------------------------------------------------
// -------------------------------------------------------
// Commands
// -------------------------------------------------------
// -------------------------------------------------------
@POST
@Consumes(APPLICATION_JSON_CQRS_COMMAND)
@Produces(MediaType.APPLICATION_JSON)
public //@Path("register")
void registerUserPostCommand(@HeaderParam("Content-type") String contentType, @QueryParam("command") @DefaultValue("") String queryCommandName, String commandJSON) {
LOG.info("User POST command");
if (identityIsEmpty(commandJSON, contentType)) {
LOG.info("Empty userId -> AUTO creating UUID. Got:");
LOG.info("JSON: " + commandJSON);
commandJSON = overwriteIdentity(commandJSON, "userId", UUID.randomUUID().toString());
}
sendAndWait(contentType, queryCommandName, commandJSON, RegisterUser.class);
}Example 71
| Project: MIFOSX-master File: ImagesApiResource.java View source code |
/**
* Upload images through multi-part form upload
*/
@POST
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
public String addNewClientImage(@PathParam("entity") final String entityName, @PathParam("entityId") final Long entityId, @HeaderParam("Content-Length") final Long fileSize, @FormDataParam("file") final InputStream inputStream, @FormDataParam("file") final FormDataContentDisposition fileDetails, @FormDataParam("file") final FormDataBodyPart bodyPart) {
validateEntityTypeforImage(entityName);
// TODO: vishwas might need more advances validation (like reading magic
// number) for handling malicious clients
// and clients not setting mime type
ContentRepositoryUtils.validateClientImageNotEmpty(fileDetails.getFileName());
ContentRepositoryUtils.validateImageMimeType(bodyPart.getMediaType().toString());
final CommandProcessingResult result = this.imageWritePlatformService.saveOrUpdateImage(entityName, entityId, fileDetails.getFileName(), inputStream, fileSize);
return this.toApiJsonSerializer.serialize(result);
}Example 72
| Project: nuxeo-filesystem-connectors-master File: VirtualFolderResource.java View source code |
@PROPFIND
public Response propfind(@Context UriInfo uriInfo, @HeaderParam("depth") String depth) {
if (depth == null) {
depth = "1";
}
Date lastModified = new Date();
Date creationDate = new Date();
@SuppressWarnings("deprecation") final net.java.dev.webdav.jaxrs.xml.elements.Response response = new net.java.dev.webdav.jaxrs.xml.elements.Response(new HRef(uriInfo.getRequestUri()), null, null, null, new PropStat(new Prop(new DisplayName("nuxeo"), /*
* @
* TODO
* :
* fix
* this
* .
* Hardcoded
* root
* name
*/
new LockDiscovery(), new SupportedLock(), new IsFolder("t"), new IsCollection(Integer.valueOf(1)), new IsHidden(Integer.valueOf(0)), new GetContentType("application/octet-stream"), new GetContentLength(0), new CreationDate(creationDate), new GetLastModified(lastModified), COLLECTION), new Status(OK)));
if (depth.equals("0")) {
return Response.status(207).entity(new MultiStatus(response)).build();
}
List<net.java.dev.webdav.jaxrs.xml.elements.Response> responses = new ArrayList<net.java.dev.webdav.jaxrs.xml.elements.Response>();
responses.add(response);
for (String name : rootFolderNames) {
lastModified = new Date();
creationDate = new Date();
PropStatBuilderExt props = new PropStatBuilderExt();
props.lastModified(lastModified).creationDate(creationDate).displayName(name).status(OK);
props.isCollection();
PropStat found = props.build();
net.java.dev.webdav.jaxrs.xml.elements.Response childResponse;
URI childUri = uriInfo.getRequestUriBuilder().path(name).build();
childResponse = new net.java.dev.webdav.jaxrs.xml.elements.Response(new HRef(childUri), null, null, null, found);
responses.add(childResponse);
}
MultiStatus st = new MultiStatus(responses.toArray(new net.java.dev.webdav.jaxrs.xml.elements.Response[responses.size()]));
return Response.status(207).entity(st).build();
}Example 73
| Project: opencast-master File: AbstractAssetManagerRestEndpoint.java View source code |
@GET
@Path("assets/{mediaPackageID}/{mediaPackageElementID}/{version}/{filenameIgnore}")
@RestQuery(name = "getAsset", description = "Get an asset", returnDescription = "The file", pathParameters = { @RestParameter(name = "mediaPackageID", description = "the media package identifier", isRequired = true, type = STRING), @RestParameter(name = "mediaPackageElementID", description = "the media package element identifier", isRequired = true, type = STRING), @RestParameter(name = "version", description = "the media package version", isRequired = true, type = STRING), @RestParameter(name = "filenameIgnore", description = "a descriptive filename which will be ignored though", isRequired = false, type = STRING) }, reponses = { @RestResponse(responseCode = SC_OK, description = "File returned"), @RestResponse(responseCode = SC_NOT_FOUND, description = "Not found") })
public Response getAsset(@PathParam("mediaPackageID") final String mediaPackageID, @PathParam("mediaPackageElementID") final String mediaPackageElementID, @PathParam("version") final String version, @HeaderParam("If-None-Match") final String ifNoneMatch) {
return handleException(new P1Lazy<Response>() {
@Override
public Response get1() {
if (StringUtils.isNotBlank(ifNoneMatch)) {
return Response.notModified().build();
}
for (final Version v : getAssetManager().toVersion(version)) {
for (Asset asset : getAssetManager().getAsset(v, mediaPackageID, mediaPackageElementID)) {
final String fileName = mediaPackageElementID.concat(".").concat(asset.getMimeType().bind(suffix).getOr("unknown"));
asset.getMimeType().map(MimeTypeUtil.Fns.toString);
// Write the file contents back
return ok(asset.getInputStream(), Option.fromOpt(asset.getMimeType().map(MimeTypeUtil.Fns.toString)), asset.getSize() > 0 ? Option.some(asset.getSize()) : Option.<Long>none(), Option.some(fileName));
}
// none
return notFound();
}
// cannot parse version
return badRequest("malformed version");
}
});
}Example 74
| Project: phresco-master File: PhrescoService.java View source code |
@POST
@Produces("application/zip")
@Consumes(MediaType.APPLICATION_JSON)
public StreamingOutput createProject(ProjectInfo projectInfo) throws PhrescoException, IOException {
// ,@HeaderParam(Constants.AUTH_TOKEN) String token
if (isDebugEnabled) {
S_LOGGER.debug("Entering Method PhrescoService.createProject(ProjectInfo projectInfo)");
}
String token = "";
System.out.println("createProject in PhrescoService::token:::" + token);
authUtil = AuthenticationUtil.getInstance();
// if(StringUtils.isEmpty(token) || !authUtil.isValidToken(token)) {
// S_LOGGER.error("Invalid Token");
// throw new UnauthorizedException("Invalid Token or Token Expired");
// }
String projectPathStr = "";
File projectPath = null;
try {
if (isDebugEnabled) {
S_LOGGER.debug("createProject() ProjectInfo=" + projectInfo.getCode());
}
ProjectService projectService = ProjectServiceFactory.getNewProjectService(projectInfo);
projectPath = projectService.createProject(projectInfo);
projectPathStr = projectPath.getPath();
if (isDebugEnabled) {
S_LOGGER.debug("Project Path = " + projectPathStr);
}
ArchiveUtil.createArchive(projectPathStr, projectPathStr + ".zip", ArchiveType.ZIP);
// FileUtil.delete(projectPath);
return new ServiceOutput(projectPathStr);
} catch (Exception pe) {
S_LOGGER.error("Error During createProject(projectInfo)", pe);
throw new PhrescoException(pe);
}
}Example 75
| Project: Prendamigo-master File: DefectResource.java View source code |
/**
* Updates defect.
* <p>
* The defect is updated only if the If-Match header is present and
* evaluation of precondition succeeds. This is done to ensure the OCC.
*/
@PUT
@Path(DEFECT_URL)
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Response updateDefect(@Context Request request, @PathParam(DEFECT) String defectId, @HeaderParam(HttpHeaders.IF_MATCH) String ifMatchHeader, DefectBean updatedBean) throws IOException {
if (ifMatchHeader == null) {
// IF-MATCH header wasn't sent, cannot validate the precondition
throw new WebApplicationException(Status.BAD_REQUEST);
}
// obtain data object from the memory store
DefectBean bean = store.getDefect(defectId);
if (bean == null) {
// not found, return 404
throw new WebApplicationException(Status.NOT_FOUND);
}
// create defect's etag
EntityTag defectBeanEtag = new EntityTag(String.valueOf(bean.hashCode()));
ResponseBuilder preconditions = request.evaluatePreconditions(defectBeanEtag);
if (preconditions != null) {
return preconditions.build();
}
updatedBean.setId(defectId);
// update defect legacy bean to the memory store
store.putDefect(defectId, updatedBean);
Response response = Response.ok(updatedBean).tag(new EntityTag(String.valueOf(updatedBean.hashCode()))).build();
return response;
}Example 76
| Project: PressGangCCMSREST-master File: WebDavResource.java View source code |
@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public javax.ws.rs.core.Response get(@Context final UriInfo uriInfo, @Context final HttpServletRequest req, @HeaderParam(WebDavConstants.X_FORWARD_FOR_HEADER) final String xForwardForHeader) {
final ByteArrayReturnValue stringValueReturn = InternalResource.get(compatibilityManager, WebDavUtils.getRemoteAddress(req, xForwardForHeader), uriInfo);
if (stringValueReturn.getStatusCode() != javax.ws.rs.core.Response.Status.OK.getStatusCode()) {
return javax.ws.rs.core.Response.status(stringValueReturn.getStatusCode()).build();
}
return javax.ws.rs.core.Response.ok().entity(stringValueReturn.getValue()).build();
}Example 77
| Project: Reminders-master File: Reminders.java View source code |
@PUT
@Path("{reminderid}/image")
@Consumes("image/jpeg")
public void setImage(@PathParam("listid") long listId, @PathParam("reminderid") long reminderId, @HeaderParam("Content-Length") long fileSize, InputStream in) throws IOException {
Reminder reminder = em.find(Reminder.class, reminderId);
if (reminder == null || reminder.getList().getId() != listId) {
throw new NotFoundException();
}
// Only admins can update another user's images.
if (!context.getUserPrincipal().getName().equals(reminder.getList().getOwner().getUsername()) && !context.isUserInRole(Role.ADMINISTRATOR.name())) {
throw new ForbiddenException();
}
// Make sure the file is not larger than the maximum allowed size.
if (fileSize > 1024 * 1024 * MAX_IMAGE_SIZE_IN_MB) {
throw new BadRequestException("REMINDER_IMAGE");
}
// Save the image. By default, {reminderid}.jpg is used as the filename.
Files.copy(in, IMAGES_BASE_DIR.resolve(reminder.getId() + ".jpg"), StandardCopyOption.REPLACE_EXISTING);
reminder.setImage(reminder.getId() + ".jpg");
}Example 78
| Project: restlet-framework-java-master File: WrapperUtil.java View source code |
/**
* Checks, if the annotations are valid for a runtime environment handled
* constructor.
*
* @param parameterAnnotations
* @param parameterType
* @return
*/
private static boolean checkParameterAnnotation(Annotation[] parameterAnnotations, Class<?> parameterType) {
if (parameterAnnotations.length == 0) {
return false;
}
for (final Annotation annotation : parameterAnnotations) {
final Class<? extends Annotation> annotationType = annotation.annotationType();
if (annotationType.equals(HeaderParam.class)) {
continue;
} else if (annotationType.equals(PathParam.class)) {
continue;
} else if (annotationType.equals(Context.class)) {
if (parameterType.equals(UriInfo.class)) {
continue;
}
if (parameterType.equals(Request.class)) {
continue;
}
if (parameterType.equals(HttpHeaders.class)) {
continue;
}
if (parameterType.equals(SecurityContext.class)) {
continue;
}
return false;
} else if (annotationType.equals(MatrixParam.class)) {
continue;
} else if (annotationType.equals(QueryParam.class)) {
continue;
}
return false;
}
return true;
}Example 79
| Project: Signal-Server-master File: AccountController.java View source code |
@Timed
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Path("/code/{verification_code}")
public void verifyAccount(@PathParam("verification_code") String verificationCode, @HeaderParam("Authorization") String authorizationHeader, @HeaderParam("X-Signal-Agent") String userAgent, @Valid AccountAttributes accountAttributes) throws RateLimitExceededException {
try {
AuthorizationHeader header = AuthorizationHeader.fromFullHeader(authorizationHeader);
String number = header.getNumber();
String password = header.getPassword();
rateLimiters.getVerifyLimiter().validate(number);
Optional<StoredVerificationCode> storedVerificationCode = pendingAccounts.getCodeForNumber(number);
if (!storedVerificationCode.isPresent() || !storedVerificationCode.get().isValid(verificationCode)) {
throw new WebApplicationException(Response.status(403).build());
}
if (accounts.isRelayListed(number)) {
throw new WebApplicationException(Response.status(417).build());
}
createAccount(number, password, userAgent, accountAttributes);
} catch (InvalidAuthorizationHeaderException e) {
logger.info("Bad Authorization Header", e);
throw new WebApplicationException(Response.status(401).build());
}
}Example 80
| Project: smart-generator-engine-master File: ReportConfigResource.java View source code |
@POST
@Path("/update")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response updatePost(@HeaderParam("Content-type") String contentType, String message) {
ResponseBuilder responseBuilder = Response.ok();
if (StringUtils.isBlank(message)) {
responseBuilder = Response.status(Status.BAD_REQUEST);
responseBuilder.build();
}
try {
//Will search for the first '=' if not found will take the whole string
//message.indexOf("=") + 1;
final int startIndex = 0;
//Consider the first '=' as the start of a value point and take rest as value
final String realMsg = message.substring(startIndex);
//Decode the message to ignore the form encodings and make them human readable
message = URLDecoder.decode(realMsg, "UTF-8");
} catch (UnsupportedEncodingException ex) {
System.out.println(ex);
}
return responseBuilder.build();
}Example 81
| Project: smart-user-master File: ProfileResource.java View source code |
@POST
@Path("/update")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response updatePost(@HeaderParam("Content-type") String contentType, String message) {
ResponseBuilder responseBuilder = Response.status(Status.SERVICE_UNAVAILABLE);
if (StringUtils.isBlank(message)) {
responseBuilder = Response.status(Status.BAD_REQUEST);
responseBuilder.build();
}
final boolean isHtmlPost;
if (StringUtils.isBlank(contentType)) {
contentType = MediaType.APPLICATION_OCTET_STREAM;
isHtmlPost = false;
} else if (contentType.equals(MediaType.APPLICATION_FORM_URLENCODED)) {
contentType = MediaType.APPLICATION_OCTET_STREAM;
isHtmlPost = true;
try {
//Will search for the first '=' if not found will take the whole string
//message.indexOf("=") + 1;
final int startIndex = 0;
//Consider the first '=' as the start of a value point and take rest as value
final String realMsg = message.substring(startIndex);
//Decode the message to ignore the form encodings and make them human readable
message = URLDecoder.decode(realMsg, "UTF-8");
} catch (UnsupportedEncodingException ex) {
}
} else {
isHtmlPost = false;
}
if (isHtmlPost) {
Person newPerson = getProfileFromContent(message);
try {
Services.getInstance().getPersonService().update(newPerson);
responseBuilder = Response.ok(getProfileFeed());
} catch (Exception ex) {
responseBuilder = Response.status(Status.INTERNAL_SERVER_ERROR);
}
}
return responseBuilder.build();
}Example 82
| Project: swagger-core-master File: DefaultParameterExtension.java View source code |
@Override
public List<Parameter> extractParameters(List<Annotation> annotations, Type type, Set<Type> typesToSkip, Iterator<SwaggerExtension> chain) {
if (shouldIgnoreType(type, typesToSkip)) {
return new ArrayList<Parameter>();
}
List<Parameter> parameters = new ArrayList<Parameter>();
Parameter parameter = null;
for (Annotation annotation : annotations) {
if (annotation instanceof QueryParam) {
QueryParam param = (QueryParam) annotation;
QueryParameter qp = new QueryParameter().name(param.value());
Property schema = createProperty(type);
if (schema != null) {
qp.setProperty(schema);
}
parameter = qp;
} else if (annotation instanceof PathParam) {
PathParam param = (PathParam) annotation;
PathParameter pp = new PathParameter().name(param.value());
Property schema = createProperty(type);
if (schema != null) {
pp.setProperty(schema);
}
parameter = pp;
} else if (annotation instanceof HeaderParam) {
HeaderParam param = (HeaderParam) annotation;
HeaderParameter hp = new HeaderParameter().name(param.value());
Property schema = createProperty(type);
if (schema != null) {
hp.setProperty(schema);
}
parameter = hp;
} else if (annotation instanceof CookieParam) {
CookieParam param = (CookieParam) annotation;
CookieParameter cp = new CookieParameter().name(param.value());
Property schema = createProperty(type);
if (schema != null) {
cp.setProperty(schema);
}
parameter = cp;
} else if (annotation instanceof FormParam) {
FormParam param = (FormParam) annotation;
FormParameter fp = new FormParameter().name(param.value());
Property schema = createProperty(type);
if (schema != null) {
fp.setProperty(schema);
}
parameter = fp;
} else {
handleAdditionalAnnotation(parameters, annotation, type, typesToSkip);
}
}
if (parameter != null) {
parameters.add(parameter);
}
return parameters;
}Example 83
| Project: vitam-master File: PerformanceResource.java View source code |
/**
* @param model
* @return
* @throws InterruptedException
* @throws FileNotFoundException
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response launchPerformanceTest(@HeaderParam(GlobalDataRest.X_TENANT_ID) int tenantId, PerformanceModel model) throws InterruptedException, FileNotFoundException {
if (performanceService.inProgress()) {
return Response.accepted().build();
}
ParametersChecker.checkParameter("SIP path is a mandatory parameter", model.getFileName());
if (!performanceService.sipExist(model.getFileName())) {
LOGGER.error(String.format("SIP path invalid: %s", model.getFileName()));
return Response.status(Response.Status.PRECONDITION_FAILED).entity("SIP path invalid").build();
}
if (model.getNumberOfIngest() == 0) {
LOGGER.error("number of ingest must be greater than 0");
return Response.status(Response.Status.PRECONDITION_FAILED).entity("number of ingest must be greater than 0").build();
}
if (model.getParallelIngest() == 0) {
LOGGER.error("number of parallel ingest must be greater than 0");
return Response.status(Response.Status.PRECONDITION_FAILED).entity("number of parallel ingest must be greater than 0").build();
}
String fileName = format("report_%s.csv", LocalDateTime.now().format(DATE_TIME_FORMATTER));
performanceTestLauncher.submit(() -> {
try {
performanceService.launchPerformanceTest(model, fileName, tenantId);
} catch (IOException e) {
LOGGER.error("unable to launch performance test", e);
}
});
return Response.accepted(fileName).build();
}Example 84
| Project: Wink-master File: DefectResource.java View source code |
/**
* Updates defect.
* <p>
* The defect is updated only if the If-Match header is present and
* evaluation of precondition succeeds. This is done to ensure the OCC.
*/
@PUT
@Path(DEFECT_URL)
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Response updateDefect(@Context Request request, @PathParam(DEFECT) String defectId, @HeaderParam(HttpHeaders.IF_MATCH) String ifMatchHeader, DefectBean updatedBean) throws IOException {
if (ifMatchHeader == null) {
// IF-MATCH header wasn't sent, cannot validate the precondition
throw new WebApplicationException(Status.BAD_REQUEST);
}
// obtain data object from the memory store
DefectBean bean = store.getDefect(defectId);
if (bean == null) {
// not found, return 404
throw new WebApplicationException(Status.NOT_FOUND);
}
// create defect's etag
EntityTag defectBeanEtag = new EntityTag(String.valueOf(bean.hashCode()));
ResponseBuilder preconditions = request.evaluatePreconditions(defectBeanEtag);
if (preconditions != null) {
return preconditions.build();
}
updatedBean.setId(defectId);
// update defect legacy bean to the memory store
store.putDefect(defectId, updatedBean);
Response response = Response.ok(updatedBean).tag(new EntityTag(String.valueOf(updatedBean.hashCode()))).build();
return response;
}Example 85
| Project: YiDB-master File: BranchResource.java View source code |
@GET public CMSResponse getMainBranches(@Context UriInfo uriInfo, @HeaderParam("X-CMS-PRIORITY") final String priority, @HeaderParam("X-CMS-CONSISTENCY") final String consistPolicy, @PathParam("reponame") String reponame, @Context HttpServletRequest request) { CMSPriority p = CMSResourceUtils.parsePriority(priority); CMSResponse response = new CMSResponse(); ConsistentPolicy policy = CMSResourceUtils.parsePolicy(cmsServer, consistPolicy); try { EntityContext context = createContext(uriInfo, request, policy); List<IBranch> branches = cmsServer.getMainBranches(p, reponame, context); if (branches == null) { branches = Collections.emptyList(); } response.addProperty("count", branches.size()); response.addResult(branches); return response; } catch (Throwable e) { logger.error("exception while list branches on repository " + reponame, e); convertExceptionAndReThrow(e); return null; } }
Example 86
| Project: zen-project-master File: HyperApiWsSkelton.java View source code |
private Object[] createArgs(Obj uriParams, HttpEntity entity, Class<?> api2, Method method) throws IOException {
List<NameValuePair> formParams = Collections.emptyList();
if (entity != null) {
formParams = HTTP.parseEntityWithDefaultUtf8(entity);
}
Class<?>[] parameterTypes = method.getParameterTypes();
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
Object[] args = new Object[parameterTypes.length];
for (int i = 0; i < parameterTypes.length; i++) {
Class<?> parameterType = parameterTypes[i];
Annotation[] annotations = parameterAnnotations[i];
AnnotatedType p = new AnnotatedType(parameterType, annotations);
boolean annotationFound = false;
for (Annotation annotation : annotations) {
if (annotation instanceof HeaderParam) {
// TODO
} else if (annotation instanceof PathParam) {
annotationFound = true;
Object o = JPATH.getPathSafe(uriParams, ((PathParam) annotation).value());
args[i] = decast(o, parameterType);
break;
} else if (annotation instanceof QueryParam) {
annotationFound = true;
Object o = JPATH.getPathSafe(uriParams, ((QueryParam) annotation).value());
args[i] = decast(o, parameterType);
break;
} else if (annotation instanceof FormParam) {
annotationFound = true;
if (Obj.class.equals(parameterType)) {
args[i] = HTTP.toStru(formParams).asObj();
} else if (parameterType.isInterface() && ObjWrapper.class.isAssignableFrom(parameterType)) {
args[i] = WF.wrap(HTTP.toStru(formParams).asObj(), parameterType);
} else {
Object o = getFormParams(formParams, ((FormParam) annotation).value());
args[i] = decast(o, parameterType);
}
break;
}
}
if (!annotationFound) {
if (entity == null) {
args[i] = null;
} else /* else if(parameterType.isInterface() && ObjWrapper.class.isAssignableFrom(parameterType)) {
args[i] = WF.wrap((ObjWrapper)entityCodec.decode(entity, p), parameterType);
}*/
{
args[i] = entityCodec.decode(entity, p);
}
}
}
return args;
}Example 87
| Project: alexandria-master File: WebAnnotationsEndpoint.java View source code |
@POST
@Consumes(JSONLD_MEDIATYPE)
@Produces(JSONLD_MEDIATYPE)
public //
Response addWebAnnotation(//
@HeaderParam("Accept") String acceptHeader, //
WebAnnotationPrototype prototype) {
String expectedProfile = extractProfile(acceptHeader);
prototype.setCreated(Instant.now().toString());
WebAnnotation webAnnotation = webAnnotationService.validateAndStore(prototype);
String profiledWebAnnotation = profile(webAnnotation.json(), expectedProfile);
return //
Response.created(webAnnotationService.webAnnotationURI(webAnnotation.getId())).link(RESOURCE_TYPE_URI, //
"type").link(ANNOTATION_TYPE_URI, //
"type").tag(//
webAnnotation.eTag()).allow(//
ALLOWED_METHODS).entity(//
profiledWebAnnotation).build();
}Example 88
| Project: candlepin-master File: ResourceLocatorMap.java View source code |
/**
* Log what resources have been detected and warn about missing media types.
*
* Not having a @Produces annotation on a method can have subtle effects on the way Resteasy
* resolves which method to dispatch a request to.
*
* Resource resolution order is detailed in the JAX-RS 2.0 specification in section 3.7.2.
* Consider the following
*
* @PUT
* @Path("/foo")
* public String methodOne() {
* ...
* }
*
* @PUT
* @Path("/{id}")
* @Produces(MediaType.APPLICATION_JSON)
* public String methodTwo(@PathParam("id") String id) {
* ....
* }
*
* With a cursory reading of the specification, it appears that a request to
*
* PUT /foo
*
* should result in methodOne being selected since methodOne's Path has more
* literal characters than methodTwo. However, methodTwo has a specific media
* type defined and methodOne does not (thus using the wildcard type as a default),
* methodTwo is actually the resource selected.
*
* The same rules apply for @Consumes annotations.
*/
protected void logLocators() {
StringBuffer registered = new StringBuffer("Registered the following RESTful methods:\n");
StringBuffer missingProduces = new StringBuffer();
StringBuffer missingConsumes = new StringBuffer();
for (Method m : keySet()) {
String name = m.getDeclaringClass() + "." + m.getName();
registered.append("\t" + name + "\n");
if (!m.isAnnotationPresent(Produces.class)) {
missingProduces.append("\t" + name + "\n");
}
if (m.isAnnotationPresent(GET.class) || m.isAnnotationPresent(HEAD.class) || m.isAnnotationPresent(DELETE.class) || m.isAnnotationPresent(Deprecated.class)) {
/* Technically GET, HEAD, and DELETE are allowed to have bodies (and therefore would
* need a Consumes annotation, but the HTTP 1.1 spec states in section 4.3 that any
* such body should be ignored. See http://stackoverflow.com/a/983458/6124862
*
* Therefore, we won't print warnings on unannotated GET, HEAD, and DELETE methods.
*
* Deprecated methods are not expected to be updated.
*/
continue;
}
if (!m.isAnnotationPresent(Consumes.class)) {
missingConsumes.append("\t" + name + "\n");
} else {
/* The purpose of all the ridiculousness below is to find methods that
* bind objects from the HTTP request body but that are marked as consuming
* the star slash star wildcard mediatype. Candlepin only consumes JSON
* at the moment but even if that changes we still want to be explicit
* about what we accept.
*/
Consumes consumes = m.getAnnotation(Consumes.class);
List<String> mediaTypes = Arrays.asList(consumes.value());
if (mediaTypes.contains(MediaType.WILDCARD)) {
Annotation[][] allParamAnnotations = m.getParameterAnnotations();
boolean bindsBody = false;
for (Annotation[] paramAnnotations : allParamAnnotations) {
boolean boundObjectFromBody = true;
for (Annotation a : paramAnnotations) {
Class<? extends Annotation> clazz = a.annotationType();
if (QueryParam.class.isAssignableFrom(clazz) || PathParam.class.isAssignableFrom(clazz) || MatrixParam.class.isAssignableFrom(clazz) || HeaderParam.class.isAssignableFrom(clazz) || FormParam.class.isAssignableFrom(clazz) || CookieParam.class.isAssignableFrom(clazz)) {
boundObjectFromBody = false;
continue;
}
}
bindsBody = bindsBody || boundObjectFromBody;
}
if (bindsBody) {
log.warn("{} consumes a wildcard media type but binds an object from" + " the request body. Define specific media types consumed instead.", name);
}
}
}
}
if (log.isDebugEnabled()) {
log.trace(registered.toString());
}
if (missingProduces.length() != 0) {
log.warn("The following methods are missing a Produces annotation:\n{}", missingProduces);
}
if (missingConsumes.length() != 0) {
log.warn("The following methods are missing a Consumes annotation:\n{}", missingConsumes);
}
}Example 89
| Project: resource-manager-master File: StudioRest.java View source code |
@Override
public ArrayList<String> getClasses(@HeaderParam("sessionid") String sessionId) throws NotConnectedRestException {
String userName = getUserName(sessionId);
File classesDir = new File(getFileStorageSupport().getWorkflowsDir(userName), "classes");
ArrayList<String> classes = new ArrayList<>();
if (classesDir.exists()) {
File[] jars = classesDir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".jar");
}
});
for (File jar : jars) {
try {
JarFile jarFile = new JarFile(jar.getAbsolutePath());
Enumeration allEntries = jarFile.entries();
while (allEntries.hasMoreElements()) {
JarEntry entry = (JarEntry) allEntries.nextElement();
String name = entry.getName();
if (name.endsWith(".class")) {
String noExt = name.substring(0, name.length() - ".class".length());
classes.add(noExt.replaceAll("/", "."));
}
}
} catch (IOException e) {
logger.warn("Could not read jar file " + jar, e);
}
}
}
return classes;
}Example 90
| Project: scheduling-master File: StudioRest.java View source code |
@Override
public ArrayList<String> getClasses(@HeaderParam("sessionid") String sessionId) throws NotConnectedRestException {
String userName = getUserName(sessionId);
File classesDir = new File(getFileStorageSupport().getWorkflowsDir(userName), "classes");
ArrayList<String> classes = new ArrayList<>();
if (classesDir.exists()) {
File[] jars = classesDir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".jar");
}
});
for (File jar : jars) {
try {
JarFile jarFile = new JarFile(jar.getAbsolutePath());
Enumeration allEntries = jarFile.entries();
while (allEntries.hasMoreElements()) {
JarEntry entry = (JarEntry) allEntries.nextElement();
String name = entry.getName();
if (name.endsWith(".class")) {
String noExt = name.substring(0, name.length() - ".class".length());
classes.add(noExt.replaceAll("/", "."));
}
}
} catch (IOException e) {
logger.warn("Could not read jar file " + jar, e);
}
}
}
return classes;
}Example 91
| Project: sinkit-core-master File: ProtostreamREST.java View source code |
/**
* @returns huge byte array Protocol Buffer with custom list records
*/
@GET
@Path("/protostream/customlist")
@Produces({ "application/x-protobuf" })
public Response getProtostreamCustomList(@HeaderParam(CLIENT_ID_HEADER_PARAM) Integer clientId) {
if (SINKIT_CUSTOMLIST_PROTOSTREAM_GENERATOR_D_H_M_S == null) {
return Response.status(Response.Status.NOT_FOUND).header(X_ERROR, "This is a wrong node. Protostream generator is not started.").build();
}
if (clientId == null || clientId < 0) {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).header(X_ERROR, CLIENT_ID_HEADER_PARAM + " seems to be invalid or missing").build();
}
final File customListBinary = new File(customListFilePath + clientId);
final File customlistBinaryMD5 = new File(customListFileMd5 + clientId);
if (customListBinary.exists() && customlistBinaryMD5.exists()) {
InputStream is;
String md5sum;
try {
is = new FileInputStream(customListBinary);
md5sum = new String(Files.readAllBytes(customlistBinaryMD5.toPath()), StandardCharsets.UTF_8);
} catch (FileNotFoundException e) {
log.log(Level.SEVERE, customListFilePath + clientId + " not found.");
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).header(X_ERROR, customListFilePath + clientId + " not found.").build();
} catch (IOException e) {
log.log(Level.SEVERE, customListFileMd5 + clientId + " not found.");
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).header(X_ERROR, customListFileMd5 + clientId + " not found.").build();
}
return Response.ok().entity(is).header(X_FILE_LENGTH, String.valueOf(customListBinary.length())).header(X_FILE_MD5, md5sum).build();
} else {
// If any other file is generated, it means the generator cycle already passed, but there are no data for this particular client ID
try (DirectoryStream<java.nio.file.Path> someFiles = Files.newDirectoryStream(Paths.get(GENERATED_PROTOFILES_DIRECTORY), "ioclist.bin*")) {
if (someFiles.iterator().hasNext()) {
customListBinary.createNewFile();
// The desired behaviour is to return an empty file
return Response.ok().entity(new FileInputStream(customListBinary)).header(X_FILE_LENGTH, "0").header(X_FILE_MD5, "").build();
}
} catch (IOException e) {
return Response.status(TRY_LATER).header(X_ERROR, "Try later, please.").build();
}
return Response.status(TRY_LATER).header(X_ERROR, "Try later, please.").build();
}
}Example 92
| Project: summaServer-master File: JerseyService.java View source code |
/** * * * @param message * @param inputMime, curl standard is application/x-www-form-urlencoded * @param outputMime, standard is everything /** @return * */ @POST public Response getPost(String message, @HeaderParam("Content-Type") String inputMime, @HeaderParam("Accept") String outputMime) { // get formats for MIME types RDFFormat inputFormat = Rio.getParserFormatForMIMEType(inputMime); RDFFormat outputFormat = Rio.getParserFormatForMIMEType(outputMime.split(",")[0]); if (inputFormat == null) { // TODO // method which detects the format // if Format could not be detected leave method and return error } if (outputFormat == null) { outputFormat = RDFFormat.TURTLE; } try { Model model = Rio.parse(new StringReader(message), "", inputFormat); ValueFactory f = ValueFactoryImpl.getInstance(); String entity = model.filter(null, f.createURI(ENTITY), null).objectURI().stringValue(); Integer topK = Integer.parseInt(model.filter(null, f.createURI(TOP_K), null).objectValue().stringValue()); Model maxHopsMod = model.filter(null, f.createURI(MAX_HOPS), null); Integer maxHops = null; if (!maxHopsMod.isEmpty()) { maxHops = Integer.parseInt(maxHopsMod.objectValue().stringValue()); } String language = null; Model languageMod = model.filter(null, f.createURI(LANGUAGE), null); if (!languageMod.isEmpty()) { language = languageMod.objectValue().stringValue(); } Model m = model.filter(null, f.createURI(FIXED_PROPERTY), null); Set<Value> objects = m.objects(); Iterator<Value> val = objects.iterator(); String[] fixedProperties = new String[objects.size()]; for (int i = 0; i < fixedProperties.length; i++) { fixedProperties[i] = val.next().stringValue(); } return executeQuery(entity, topK, maxHops, fixedProperties, language, outputFormat); } catch (RDFParseException e) { e.printStackTrace(); } catch (UnsupportedRDFormatException e) { e.printStackTrace(); } catch (NumberFormatException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }
Example 93
| Project: tuscany-sca-2.x-master File: RESTBindingInvoker.java View source code |
public Message invoke(Message msg) {
Object entity = null;
Object[] args = msg.getBody();
URI uri = URI.create(binding.getURI());
UriBuilder uriBuilder = UriBuilder.fromUri(uri);
Method method = ((JavaOperation) operation).getJavaMethod();
if (method.isAnnotationPresent(Path.class)) {
// Only for resource method
uriBuilder.path(method);
}
if (!JAXRSHelper.isResourceMethod(method)) {
// This is RPC over GET
uriBuilder.replaceQueryParam("method", method.getName());
}
Map<String, Object> pathParams = new HashMap<String, Object>();
Map<String, Object> matrixParams = new HashMap<String, Object>();
Map<String, Object> queryParams = new HashMap<String, Object>();
Map<String, Object> headerParams = new HashMap<String, Object>();
Map<String, Object> formParams = new HashMap<String, Object>();
Map<String, Object> cookieParams = new HashMap<String, Object>();
for (int i = 0; i < method.getParameterTypes().length; i++) {
boolean isEntity = true;
Annotation[] annotations = method.getParameterAnnotations()[i];
PathParam pathParam = getAnnotation(annotations, PathParam.class);
if (pathParam != null) {
isEntity = false;
pathParams.put(pathParam.value(), args[i]);
}
MatrixParam matrixParam = getAnnotation(annotations, MatrixParam.class);
if (matrixParam != null) {
isEntity = false;
matrixParams.put(matrixParam.value(), args[i]);
}
QueryParam queryParam = getAnnotation(annotations, QueryParam.class);
if (queryParam != null) {
isEntity = false;
queryParams.put(queryParam.value(), args[i]);
}
HeaderParam headerParam = getAnnotation(annotations, HeaderParam.class);
if (headerParam != null) {
isEntity = false;
headerParams.put(headerParam.value(), args[i]);
}
FormParam formParam = getAnnotation(annotations, FormParam.class);
if (formParam != null) {
isEntity = false;
formParams.put(formParam.value(), args[i]);
}
CookieParam cookieParam = getAnnotation(annotations, CookieParam.class);
if (cookieParam != null) {
isEntity = false;
cookieParams.put(cookieParam.value(), args[i]);
}
if (isEntity) {
entity = args[i];
}
}
for (Map.Entry<String, Object> p : queryParams.entrySet()) {
uriBuilder.replaceQueryParam(p.getKey(), p.getValue());
}
for (Map.Entry<String, Object> p : matrixParams.entrySet()) {
uriBuilder.replaceMatrixParam(p.getKey(), p.getValue());
}
uri = uriBuilder.buildFromMap(pathParams);
Resource resource = restClient.resource(uri);
for (Map.Entry<String, Object> p : headerParams.entrySet()) {
resource.header(p.getKey(), String.valueOf(p.getValue()));
}
for (Map.Entry<String, Object> p : cookieParams.entrySet()) {
Cookie cookie = new Cookie(p.getKey(), String.valueOf(p.getValue()));
resource.cookie(cookie);
}
resource.contentType(getContentType());
resource.accept(getAccepts());
//handles declarative headers configured on the composite
for (HTTPHeader header : binding.getHttpHeaders()) {
//treat special headers that need to be calculated
if (header.getName().equalsIgnoreCase("Expires")) {
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(new Date());
calendar.add(Calendar.HOUR, Integer.parseInt(header.getValue()));
resource.header("Expires", HTTPCacheContext.RFC822DateFormat.format(calendar.getTime()));
} else {
//default behaviour to pass the header value to HTTP response
resource.header(header.getName(), header.getValue());
}
}
Object result = resource.invoke(httpMethod, responseType, entity);
msg.setBody(result);
return msg;
}Example 94
| Project: typescript-generator-master File: JaxrsApplicationParser.java View source code |
private static MethodParameterModel getEntityParameter(Method method) {
final List<Parameter> parameters = Parameter.ofMethod(method);
for (Parameter parameter : parameters) {
if (!hasAnyAnnotation(parameter, Arrays.asList(MatrixParam.class, QueryParam.class, PathParam.class, CookieParam.class, HeaderParam.class, Context.class, FormParam.class))) {
return new MethodParameterModel(parameter.getName(), parameter.getParameterizedType());
}
}
return null;
}Example 95
| Project: aerogear-unifiedpush-server-master File: InstallationRegistrationEndpoint.java View source code |
/**
* RESTful API for Device registration.
* The Endpoint is protected using <code>HTTP Basic</code> (credentials <code>VariantID:secret</code>).
*
* <pre>
* curl -u "variantID:secret"
* -v -H "Accept: application/json" -H "Content-type: application/json" -H "aerogear-push-id: someid"
* -X POST
* -d '{
* "deviceToken" : "someTokenString",
* "deviceType" : "iPad",
* "operatingSystem" : "iOS",
* "osVersion" : "6.1.2",
* "alias" : "someUsername or email adress...",
* "categories" : ["football", "sport"]
* }'
* https://SERVER:PORT/context/rest/registry/device
* </pre>
*
* Details about JSON format can be found HERE!
*
* @param oldToken The previously registered deviceToken or an empty String. Provided by the header x-ag-old-token.
* @param entity {@link Installation} for Device registration
* @param request the request object
* @return registered {@link Installation}
*
* @requestheader x-ag-old-token the old push service dependant token (ie InstanceID in FCM). If present these tokens will be forcefully unregistered before the new token is registered.
*
* @responseheader Access-Control-Allow-Origin With host in your "Origin" header
* @responseheader Access-Control-Allow-Credentials true
* @responseheader WWW-Authenticate Basic realm="AeroGear UnifiedPush Server" (only for 401 response)
*
* @statuscode 200 Successful storage of the device metadata
* @statuscode 400 The format of the client request was incorrect (e.g. missing required values)
* @statuscode 401 The request requires authentication
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ReturnType("org.jboss.aerogear.unifiedpush.api.Installation")
public Response registerInstallation(@DefaultValue("") @HeaderParam("x-ag-old-token") final String oldToken, Installation entity, @Context HttpServletRequest request) {
// find the matching variation:
final Variant variant = loadVariantWhenAuthorized(request);
if (variant == null) {
return create401Response(request);
}
// Poor up-front validation for required token
final String deviceToken = entity.getDeviceToken();
if (deviceToken == null || !DeviceTokenValidator.isValidDeviceTokenForVariant(deviceToken, variant.getType())) {
logger.trace(String.format("Invalid device token was delivered: %s for variant type: %s", deviceToken, variant.getType()));
return appendAllowOriginHeader(Response.status(Status.BAD_REQUEST), request);
}
// The 'mobile application' on the device/client was launched.
// If the installation is already in the DB, let's update the metadata,
// otherwise we register a new installation:
logger.trace("Mobile Application on device was launched");
//The token has changed, remove the old one
if (!oldToken.isEmpty() && !oldToken.equals(entity.getDeviceToken())) {
logger.info(String.format("Deleting old device token %s", oldToken));
clientInstallationService.removeInstallationForVariantByDeviceToken(variant.getVariantID(), oldToken);
}
// async:
clientInstallationService.addInstallation(variant, entity);
return appendAllowOriginHeader(Response.ok(entity), request);
}Example 96
| Project: alchemy-rest-client-generator-master File: AlchemyRestClientFactory.java View source code |
/*
* (non-Javadoc)
* @see javassist.util.proxy.MethodHandler#invoke(java.lang.Object,
* java.lang.reflect.Method, java.lang.reflect.Method,
* java.lang.Object[])
*/
@Override
public Object invoke(final Object self, final Method thisMethod, final Method proceed, final Object[] arguments) throws Throwable {
final RestMethodMetadata methodMetaData = restInterfaceMetadata.getMethodMetaData().get(thisMethod);
if (methodMetaData == null) {
throw new NotRestMethodException(thisMethod);
}
final String path = getPath(methodMetaData, arguments);
log.debug("Invoking rest service at {}", path);
final Client client = clientProvider.get();
WebTarget webTarget = client.target(path);
Entity<?> entity = null;
final Annotation[][] parameterAnnotations = methodMetaData.getParameterAnnotations();
final String bodyParameterMediaType = methodMetaData.getConsumed().isEmpty() ? null : methodMetaData.getConsumed().get(0);
// set query params
for (int i = 0; i < arguments.length; i++) {
final Object argument = arguments[i];
if (parameterAnnotations.length <= i) {
// body parameter without annotation
entity = toEntity(argument, bodyParameterMediaType);
continue;
}
final Annotation[] annotations = parameterAnnotations[i];
if (annotations == null || annotations.length == 0) {
// body parameter without annotation
entity = toEntity(argument, bodyParameterMediaType);
continue;
}
for (final Annotation annotation : annotations) {
if (annotation instanceof QueryParam) {
final String key = ((QueryParam) annotation).value();
final String value = ObjectUtils.toString(argument);
webTarget = webTarget.queryParam(key, value);
}
}
}
// create the request builder
Builder webRequestBuilder = webTarget.request();
webRequestBuilder.accept(methodMetaData.getProduced().toArray(new String[0]));
webRequestBuilder = webRequestBuilder.accept(methodMetaData.getConsumed().toArray(new String[0]));
if (builderFilter != null) {
builderFilter.apply(webRequestBuilder);
}
// for form params
Form formParams = null;
// process cookie and header params
for (int i = 0; i < arguments.length; i++) {
if (i >= parameterAnnotations.length) {
continue;
}
final Annotation[] annotations = parameterAnnotations[i];
final Object argument = arguments[i];
for (final Annotation annotation : annotations) {
if (annotation instanceof CookieParam) {
// add cookie to the request
Cookie cookie = null;
if (argument instanceof Cookie) {
cookie = (Cookie) argument;
} else {
cookie = new Cookie(((CookieParam) annotation).value(), ObjectUtils.toString(argument));
}
webRequestBuilder = webRequestBuilder.cookie(cookie);
} else if (annotation instanceof HeaderParam) {
// add header param
final String key = ((HeaderParam) annotation).value();
final String value = ObjectUtils.toString(argument);
webRequestBuilder = webRequestBuilder.header(key, value);
} else if (annotation instanceof FormParam) {
if (formParams == null) {
formParams = new javax.ws.rs.core.Form();
}
formParams.param(((FormParam) annotation).value(), ObjectUtils.toString(argument));
}
}
}
if (formParams != null) {
// annotation
assert entity == null;
// for form parameters the method should be post
assert HttpMethod.POST.equals(methodMetaData.getHttpMethod());
entity = toEntity(formParams, MediaType.APPLICATION_FORM_URLENCODED);
}
final FormDataMultiPart formDataMultiPart = processFormDataParams(arguments, parameterAnnotations);
if (formDataMultiPart != null) {
// annotation
assert entity == null;
// for form parameters the method should be post
assert HttpMethod.POST.equals(methodMetaData.getHttpMethod());
entity = toEntity(formDataMultiPart, formDataMultiPart.getMediaType().toString());
}
// Get the return type.
@SuppressWarnings("rawtypes") final GenericType<?> returnType = new GenericType(thisMethod.getGenericReturnType()) {
};
try {
Object retval = null;
final String httpMethod = methodMetaData.getHttpMethod();
if (HttpMethod.GET.equals(httpMethod)) {
retval = webRequestBuilder.get(returnType);
} else if (HttpMethod.PUT.equals(httpMethod)) {
retval = webRequestBuilder.put(entity, returnType);
} else if (HttpMethod.POST.equals(httpMethod)) {
retval = webRequestBuilder.post(entity, returnType);
} else if (HttpMethod.DELETE.equals(httpMethod)) {
retval = webRequestBuilder.delete(returnType);
}
return retval;
} catch (final InternalServerErrorException e) {
throw responseToThrowableMapper.apply(e.getResponse());
}
}Example 97
| Project: BETaaS_Platform-Tools-master File: ExternalAPIImpl.java View source code |
@GET
@Path("/data/{appID}/{serviceID}")
@Consumes("application/xml; charset=UTF-8")
public String getThingServiceData(@PathParam("appID") String appID, @PathParam("serviceID") String serviceID, @HeaderParam("token") String token) {
mLogger.info("Called getThingServiceData(" + appID + ", " + serviceID + ")");
if ((token == null) || (token.length() == 0)) {
mLogger.warn("Token not specified");
}
if ((appID == null) || (serviceID == null)) {
mLogger.error("Wrong appID/serviceID");
return "";
}
// Get the GW Id from the service ID
int pos = serviceID.indexOf("::");
if (pos < 0) {
mLogger.error("Cannot extract GW identifier from serviceID");
return "";
}
String gwId = serviceID.substring(0, pos);
if (gwId.equals(ServiceManager.getInstance().getGWId())) {
// It is a service allocated in this GW
ApplicationRegistry applicationReg = ServiceManager.getInstance().getAppRegistry();
if (applicationReg.getApp(appID, true) == null) {
mLogger.error("Received getThingServiceData request from an unregistered application");
return "";
}
RequestManager reqMng = new RequestManager();
return reqMng.getThingServiceData(serviceID, true, token);
} else {
ServiceManagerExternalIF extSM = mDiscovery.retrieveSM(gwId);
if (extSM != null) {
mLogger.info("Calling remote getThingServiceData");
return extSM.getThingServiceData(appID, serviceID, token);
} else {
mLogger.error("Cannot get remote SM with GWId=" + gwId);
return "";
}
}
}Example 98
| Project: cdap-master File: DatasetTypeHandler.java View source code |
@PUT
@Path("/data/modules/{name}")
public BodyConsumer addModule(HttpRequest request, HttpResponder responder, @PathParam("namespace-id") String namespaceId, @PathParam("name") final String name, @HeaderParam(HEADER_CLASS_NAME) final String className) throws Exception {
Id.Namespace namespace = Id.Namespace.from(namespaceId);
if (Id.Namespace.SYSTEM.equals(namespace)) {
responder.sendString(HttpResponseStatus.FORBIDDEN, String.format("Cannot add module to '%s' namespace.", namespaceId));
return null;
}
// Throws NamespaceNotFoundException if the namespace does not exist
ensureNamespaceExists(namespace);
// verify namespace directory exists
final Location namespaceHomeLocation = namespacedLocationFactory.get(namespace);
if (!namespaceHomeLocation.exists()) {
String msg = String.format("Home directory %s for namespace %s not found", namespaceHomeLocation, namespaceId);
LOG.error(msg);
responder.sendString(HttpResponseStatus.NOT_FOUND, msg);
return null;
}
// Store uploaded content to a local temp file
String namespacesDir = cConf.get(Constants.Namespace.NAMESPACES_DIR);
File localDataDir = new File(cConf.get(Constants.CFG_LOCAL_DATA_DIR));
File namespaceBase = new File(localDataDir, namespacesDir);
File tempDir = new File(new File(namespaceBase, namespaceId), cConf.get(Constants.AppFabric.TEMP_DIR)).getAbsoluteFile();
if (!DirUtils.mkdirs(tempDir)) {
throw new IOException("Could not create temporary directory at: " + tempDir);
}
final Id.DatasetModule datasetModuleId = Id.DatasetModule.from(namespace, name);
return new AbstractBodyConsumer(File.createTempFile("dataset-", ".jar", tempDir)) {
@Override
protected void onFinish(HttpResponder responder, File uploadedFile) throws Exception {
if (className == null) {
// We have to delay until body upload is completed due to the fact that not all client is
// requesting with "Expect: 100-continue" header and the client library we have cannot handle
// connection close, and yet be able to read response reliably.
// In longer term we should fix the client, as well as the netty-http server. However, since
// this handler will be gone in near future, it's ok to have this workaround.
responder.sendString(HttpResponseStatus.BAD_REQUEST, "Required header 'class-name' is absent.");
return;
}
LOG.info("Adding module {}, class name: {}", datasetModuleId, className);
String dataFabricDir = cConf.get(Constants.Dataset.Manager.OUTPUT_DIR);
Location archiveDir = namespaceHomeLocation.append(dataFabricDir).append(name).append(Constants.ARCHIVE_DIR);
String archiveName = name + ".jar";
Location archive = archiveDir.append(archiveName);
// Copy uploaded content to a temporary location
Location tmpLocation = archive.getTempFile(".tmp");
try {
conflictIfModuleExists(datasetModuleId);
Locations.mkdirsIfNotExists(archiveDir);
LOG.debug("Copy from {} to {}", uploadedFile, tmpLocation);
Files.copy(uploadedFile, Locations.newOutputSupplier(tmpLocation));
// Check if the module exists one more time to minimize the window of possible conflict
conflictIfModuleExists(datasetModuleId);
// Finally, move archive to final location
LOG.debug("Storing module {} jar at {}", datasetModuleId, archive);
if (tmpLocation.renameTo(archive) == null) {
throw new IOException(String.format("Could not move archive from location: %s, to location: %s", tmpLocation, archive));
}
manager.addModule(datasetModuleId, className, archive);
// todo: response with DatasetModuleMeta of just added module (and log this info)
LOG.info("Added module {}", datasetModuleId);
responder.sendStatus(HttpResponseStatus.OK);
} catch (Exception e) {
try {
tmpLocation.delete();
} catch (IOException ex) {
LOG.warn("Failed to cleanup temporary location {}", tmpLocation);
}
if (e instanceof DatasetModuleConflictException) {
responder.sendString(HttpResponseStatus.CONFLICT, e.getMessage());
} else {
LOG.error("Failed to add module {}", name, e);
throw e;
}
}
}
};
}Example 99
| Project: EasySOA-Incubation-master File: WebResourceFactory.java View source code |
@Override
@SuppressWarnings("unchecked")
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// get the interface describing the resource
Class<?> proxyIfc = proxy.getClass().getInterfaces()[0];
// response type
Class<?> responseType = method.getReturnType();
// determine method name
String httpMethod = getHttpMethodName(method);
if (httpMethod == null) {
for (Annotation ann : method.getAnnotations()) {
httpMethod = getHttpMethodName(ann.annotationType());
if (httpMethod != null) {
break;
}
}
}
// create a new UriBuilder appending the @Path attached to the method
WebResource newTarget;
Path p = method.getAnnotation(Path.class);
if (p != null && !p.value().contains("{")) {
newTarget = addPathFromAnnotation(method, target);
} else {
newTarget = target;
}
if (httpMethod == null) {
if (newTarget == target) {
// no path annotation on the method -> fail
throw new UnsupportedOperationException("Not a resource method.");
} else if (!responseType.isInterface()) {
// not interface - can't help here
throw new UnsupportedOperationException("Return type not an interface");
}
}
// process method params (build maps of (Path|Form|Cookie|Matrix|Header..)Params
// and extract entity type
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
headers.putAll(this.headers);
LinkedList<Cookie> cookies = new LinkedList<Cookie>(this.cookies);
Form form = new Form();
form.putAll(this.form);
Annotation[][] paramAnns = method.getParameterAnnotations();
Object entity = null;
Type entityType = null;
for (int i = 0; i < paramAnns.length; i++) {
Map<Class<?>, Annotation> anns = new HashMap<Class<?>, Annotation>();
for (Annotation ann : paramAnns[i]) {
anns.put(ann.annotationType(), ann);
}
Annotation ann;
Object value = args[i];
if (anns.isEmpty()) {
entityType = method.getGenericParameterTypes()[i];
entity = value;
} else {
if (value == null && (ann = anns.get(DefaultValue.class)) != null) {
value = ((DefaultValue) ann).value();
}
if (value != null) {
if ((ann = anns.get(PathParam.class)) != null) {
// XXX
newTarget = newTarget.path((String) value);
//newTarget = newTarget.pathParam(((PathParam) ann).value(), (String) value);
} else if ((ann = anns.get((QueryParam.class))) != null) {
newTarget = newTarget.queryParam(((QueryParam) ann).value(), (String) value);
} else if ((ann = anns.get((HeaderParam.class))) != null) {
headers.put(((HeaderParam) ann).value(), (List<String>) value);
} else if ((ann = anns.get((CookieParam.class))) != null) {
String name = ((CookieParam) ann).value();
Cookie c;
if (!(value instanceof Cookie)) {
c = new Cookie(name, value.toString());
} else {
c = (Cookie) value;
if (!name.equals(((Cookie) value).getName())) {
// is this the right thing to do? or should I fail? or ignore the difference?
c = new Cookie(name, c.getValue(), c.getPath(), c.getDomain(), c.getVersion());
}
}
cookies.add(c);
} else if ((ann = anns.get((MatrixParam.class))) != null) {
throw new UnsupportedOperationException();
//newTarget = newTarget.matrixParam(((MatrixParam) ann).value(), value);
} else if ((ann = anns.get((FormParam.class))) != null) {
form.add(((FormParam) ann).value(), value.toString());
}
}
}
}
if (httpMethod == null) {
// the method is a subresource locator
return WebResourceFactory.newResource(responseType, newTarget, true, headers, cookies, form);
}
// accepted media types
Produces produces = method.getAnnotation(Produces.class);
if (produces == null) {
produces = proxyIfc.getAnnotation(Produces.class);
}
String[] accepts = produces == null ? null : produces.value();
// determine content type
String contentType = null;
if (entity != null) {
Consumes consumes = method.getAnnotation(Consumes.class);
if (consumes == null) {
consumes = proxyIfc.getAnnotation(Consumes.class);
}
if (consumes != null && consumes.value().length > 0) {
// TODO: should consider q/qs instead of picking the first one
contentType = consumes.value()[0];
}
}
Builder b;
if (accepts != null) {
b = newTarget.accept(accepts);
} else {
b = newTarget.getRequestBuilder();
}
// apply header params and cookies
for (Cookie c : cookies) {
b = b.cookie(c);
}
// TODO: change this to b.headers(headers) once we switch to the latest JAX-RS API
for (Map.Entry<String, List<String>> header : headers.entrySet()) {
for (Object value : header.getValue()) {
b = b.header(header.getKey(), value);
}
}
Object result;
if (entity == null && !form.isEmpty()) {
entity = form;
contentType = MediaType.APPLICATION_FORM_URLENCODED;
} else {
if (contentType == null) {
contentType = MediaType.APPLICATION_OCTET_STREAM;
}
if (!form.isEmpty()) {
if (entity instanceof Form) {
((Form) entity).putAll(form);
} else {
// TODO: should at least log some warning here
}
}
}
GenericType<?> responseGenericType = new GenericType<Object>(method.getGenericReturnType());
if (entity != null) {
if (entityType instanceof ParameterizedType) {
entity = new GenericEntity<Object>(entity, entityType);
}
b.entity(entity, contentType);
result = b.method(httpMethod, responseGenericType);
} else {
result = b.method(httpMethod, responseGenericType);
}
return result;
}Example 100
| Project: elasticinbox-master File: SingleMessageResource.java View source code |
/**
* Get original message contents
*
* @param account
* @param messageId
* @return
*/
@GET
@Path("raw")
@Produces(MediaType.TEXT_PLAIN)
public Response getRawMessage(@HeaderParam(HttpHeaders.ACCEPT_ENCODING) String acceptEncoding, @PathParam("user") final String user, @PathParam("domain") final String domain, @PathParam("messageid") final UUID messageId) {
Mailbox mailbox = new Mailbox(user, domain);
Response response;
try {
BlobDataSource blobDS = messageDAO.getRaw(mailbox, messageId);
if (acceptEncoding != null && acceptEncoding.contains("deflate") && blobDS.isCompressed()) {
response = Response.ok(blobDS.getInputStream(), MediaType.TEXT_PLAIN).header(HttpHeaders.CONTENT_ENCODING, "deflate").build();
} else {
response = Response.ok(blobDS.getUncompressedInputStream(), MediaType.TEXT_PLAIN).build();
}
} catch (IllegalArgumentException iae) {
throw new BadRequestException(iae.getMessage());
} catch (Exception e) {
logger.warn("Internal Server Error: ", e);
throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
}
return response;
}Example 101
| Project: Europeana-Cloud-master File: FileResource.java View source code |
/**
* Returns file content. Basic support for HTTP "Range" header is
* implemented for retrieving only a part of content .
* (Description of Range header can be found in Hypertext Transfer Protocol
* HTTP/1.1, <a
* href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35">section
* 14.35 Range</a>). For instance:
* <ul>
* <li><b>Range: bytes=10-15</b> - retrieve bytes from 10 to 15 of content
* <li><b>Range: bytes=10-</b> - skip 10 first bytes of content
* </ul>
*
* <strong>Read permissions required.</strong>
* @summary get file contents from a representation version
* @param globalId cloud id of the record (required).
* @param schema schema of representation (required).
* @param version a specific version of the representation(required).
* @param fileName the name of the file(required).
* @param range range of bytes to return (optional)
* @return file content
* @throws RepresentationNotExistsException
* representation does not exist in the specified version.
* @throws RepresentationNotExistsException representation does not exist in
* the specified version.
* @throws WrongContentRangeException wrong value in "Range" header
* @throws FileNotExistsException representation version does not have file
* with the specified name.
*/
@GET
@PreAuthorize("hasPermission(#globalId.concat('/').concat(#schema).concat('/').concat(#version)," + " 'eu.europeana.cloud.common.model.Representation', read)")
public Response getFile(@PathParam(P_CLOUDID) final String globalId, @PathParam(P_REPRESENTATIONNAME) final String schema, @PathParam(P_VER) final String version, @PathParam(P_FILENAME) final String fileName, @HeaderParam(HEADER_RANGE) String range) throws RepresentationNotExistsException, FileNotExistsException, WrongContentRangeException {
// extract range
final ContentRange contentRange;
if (range == null) {
contentRange = new ContentRange(-1L, -1L);
} else {
contentRange = ContentRange.parse(range);
}
// get file md5 if complete file is requested
String md5 = null;
String fileMimeType = null;
Response.Status status;
if (contentRange.isSpecified()) {
status = Response.Status.PARTIAL_CONTENT;
} else {
status = Response.Status.OK;
final File requestedFile = recordService.getFile(globalId, schema, version, fileName);
md5 = requestedFile.getMd5();
if (StringUtils.isNotBlank(requestedFile.getMimeType())) {
fileMimeType = requestedFile.getMimeType();
}
}
// stream output
StreamingOutput output = new StreamingOutput() {
@Override
public void write(OutputStream output) throws IOException, WebApplicationException {
try {
recordService.getContent(globalId, schema, version, fileName, contentRange.start, contentRange.end, output);
} catch (RepresentationNotExistsException ex) {
throw new WebApplicationException(new UnitedExceptionMapper().toResponse(ex));
} catch (FileNotExistsException ex) {
throw new WebApplicationException(new UnitedExceptionMapper().toResponse(ex));
} catch (WrongContentRangeException ex) {
throw new WebApplicationException(new UnitedExceptionMapper().toResponse(ex));
}
}
};
return Response.status(status).entity(output).type(fileMimeType).tag(md5).build();
}