List of usage examples for com.fasterxml.jackson.core JsonFactory createJsonGenerator
@Deprecated public JsonGenerator createJsonGenerator(OutputStream out) throws IOException
From source file:com.github.jknack.handlebars.Jackson2Helper.java
@Override public CharSequence apply(final Object context, final Options options) throws IOException { if (context == null) { return options.hash("default", ""); }//from ww w .j a v a 2 s . c o m String viewName = options.hash("view", ""); JsonGenerator generator = null; try { final ObjectWriter writer; // do we need to use a view? if (!isEmpty(viewName)) { Class<?> viewClass = alias.get(viewName); if (viewClass == null) { viewClass = getClass().getClassLoader().loadClass(viewName); } writer = mapper.writerWithView(viewClass); } else { writer = mapper.writer(); } JsonFactory jsonFactory = mapper.getFactory(); SegmentedStringWriter output = new SegmentedStringWriter(jsonFactory._getBufferRecycler()); // creates a json generator. generator = jsonFactory.createJsonGenerator(output); Boolean escapeHtml = options.hash("escapeHTML", Boolean.FALSE); // do we need to escape html? if (escapeHtml) { generator.setCharacterEscapes(new HtmlEscapes()); } Boolean pretty = options.hash("pretty", Boolean.FALSE); // write the JSON output. if (pretty) { writer.withDefaultPrettyPrinter().writeValue(generator, context); } else { writer.writeValue(generator, context); } generator.close(); return new Handlebars.SafeString(output.getAndClear()); } catch (ClassNotFoundException ex) { throw new IllegalArgumentException(viewName, ex); } finally { if (generator != null && !generator.isClosed()) { generator.close(); } } }
From source file:org.openiot.security.oauth.OAuth20PermissionController.java
@Override protected ModelAndView handleRequestInternal(final HttpServletRequest request, final HttpServletResponse response) throws Exception { final String clientId = request.getParameter(OAuthConstants.CLIENT_ID); log.debug("clientId : {}", clientId); final String accessToken = request.getParameter(OAuthConstants.ACCESS_TOKEN); log.debug("accessToken : {}", accessToken); final String callerClientId = request.getParameter("caller_client_id"); log.debug("callerClientId : {}", callerClientId); final String callerAccessToken = request.getParameter("caller_access_token"); log.debug("callerAccessToken : {}", callerAccessToken); final JsonFactory jsonFactory = new JsonFactory(); final JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(response.getWriter()); response.setContentType("application/json"); // accessToken is required if (StringUtils.isBlank(accessToken)) { log.error("missing accessToken"); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("error", OAuthConstants.MISSING_ACCESS_TOKEN); jsonGenerator.writeEndObject();//from ww w . j a v a 2 s . c om jsonGenerator.close(); response.flushBuffer(); return null; } // caller accessToken is required if (StringUtils.isBlank(callerAccessToken)) { log.error("missing caller accessToken"); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("error", "missing_callerAccessToken"); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; } // clientId is required if (StringUtils.isBlank(clientId)) { log.error("missing clientId"); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("error", MISSING_CLIENT_ID); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; } // caller clientId is required if (StringUtils.isBlank(callerClientId)) { log.error("missing clientId"); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("error", "missing_callerClientId"); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; } // get ticket granting ticket final TicketGrantingTicket ticketGrantingTicket = (TicketGrantingTicket) this.ticketRegistry .getTicket(accessToken); if (ticketGrantingTicket == null || ticketGrantingTicket.isExpired()) { log.error("expired accessToken : {}", accessToken); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("error", OAuthConstants.EXPIRED_ACCESS_TOKEN); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; } // get ticket granting ticket for the caller final TicketGrantingTicket callerTicketGrantingTicket = (TicketGrantingTicket) this.ticketRegistry .getTicket(callerAccessToken); if (callerTicketGrantingTicket == null || callerTicketGrantingTicket.isExpired()) { log.error("expired accessToken : {}", callerAccessToken); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("error", OAuthConstants.EXPIRED_ACCESS_TOKEN + "_for_caller"); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; } // name of the CAS service final Collection<RegisteredService> services = servicesManager.getAllServices(); RegisteredService service = null; for (final RegisteredService aService : services) { if (StringUtils.equals(aService.getName(), clientId)) { service = aService; break; } } if (service == null) { log.error("nonexistent clientId : {}", clientId); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("error", NONEXISTENT_CLIENT_ID); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; } // TODO: check if the TGT is granted to the client?! // final TicketGrantingTicket rawTicket = ((AbstractDistributedTicketRegistry.TicketGrantingTicketDelegator)ticketGrantingTicket).getTicket(); // final Field servicesField = rawTicket.getClass().getDeclaredField("services"); // servicesField.setAccessible(true); // HashMap<String, Service> servicesMap = new HashMap<String, Service>(); // servicesMap = (HashMap<String, Service>) servicesField.get(rawTicket); // log.error("ServiceMaps is empty ? {}", servicesMap.isEmpty()); // for(Map.Entry<String, Service> entry : servicesMap.entrySet()){ // AbstractWebApplicationService webAppService = (AbstractWebApplicationService) entry.getValue(); // log.error("Service for ticket {} is {}", rawTicket.getId(), webAppService.getId()); // } // if (!servicesMap.containsKey(service.getId()) || !servicesMap.get(service.getId()).equals(service)) { // log.error("Ticket is not granted to client : {}", clientId); // jsonGenerator.writeStartObject(); // jsonGenerator.writeStringField("error", TICKET_NOT_GRANTED); // jsonGenerator.writeEndObject(); // jsonGenerator.close(); // response.flushBuffer(); // return null; // } // name of the CAS service for caller RegisteredService callerService = null; for (final RegisteredService aService : services) { if (StringUtils.equals(aService.getName(), callerClientId)) { callerService = aService; break; } } if (callerService == null) { log.error("nonexistent caller clientId : {}", callerClientId); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("error", NONEXISTENT_CLIENT_ID + "for_caller"); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; } final Principal principal = ticketGrantingTicket.getAuthentication().getPrincipal(); final Map<String, Set<String>> permissions = extractPermissions(callerService.getId(), principal.getId()); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField(CasWrapperProfile.ID, principal.getId()); jsonGenerator.writeArrayFieldStart("role_permissions"); for (final String roleName : permissions.keySet()) { jsonGenerator.writeStartObject(); jsonGenerator.writeArrayFieldStart(roleName); for (final String permission : permissions.get(roleName)) jsonGenerator.writeString(permission); jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; }
From source file:org.openiot.security.oauth.lsm.LSMOAuth20PermissionController.java
@Override protected ModelAndView handleRequestInternal(final HttpServletRequest request, final HttpServletResponse response) throws Exception { final String clientId = request.getParameter(OAuthConstants.CLIENT_ID); log.debug("clientId : {}", clientId); final String accessToken = request.getParameter(OAuthConstants.ACCESS_TOKEN); log.debug("accessToken : {}", accessToken); final String callerClientId = request.getParameter(CALLER_CLIENT_ID); log.debug("callerClientId : {}", callerClientId); final String callerAccessToken = request.getParameter(CALLER_ACCESS_TOKEN); log.debug("callerAccessToken : {}", callerAccessToken); final String userClientId = request.getParameter(USER_CLIENT_ID); log.debug("userClientId : {}", userClientId); final String userAccessToken = request.getParameter(USER_ACCESS_TOKEN); log.debug("userAccessToken : {}", userAccessToken); final String targetClientId = request.getParameter(TARGET_CLIENT_ID); log.debug("targetClientId : {}", targetClientId); response.setContentType("application/json"); // accessToken is required if (StringUtils.isBlank(accessToken)) { log.error("missing accessToken"); writeErrorMessage(response, OAuthConstants.MISSING_ACCESS_TOKEN); return null; }// w w w. jav a2 s . co m // clientId is required if (StringUtils.isBlank(clientId)) { log.error("missing clientId"); writeErrorMessage(response, MISSING_CLIENT_ID); return null; } // userToken is required if (StringUtils.isBlank(userAccessToken)) { log.error("missing user accessToken"); writeErrorMessage(response, "missing_userAccessToken"); return null; } // target clientId is required if (StringUtils.isBlank(targetClientId)) { log.error("missing target clientId"); writeErrorMessage(response, MISSING_CLIENT_ID + "for_target"); return null; } // caller accessToken and clientId are required if one of them is provided if (!StringUtils.isBlank(callerAccessToken) || !StringUtils.isBlank(callerClientId)) { if (StringUtils.isBlank(callerAccessToken)) { log.error("missing caller accessToken"); writeErrorMessage(response, "missing_callerAccessToken"); return null; } else if (StringUtils.isBlank(callerClientId)) { log.error("missing caller clientId"); writeErrorMessage(response, "missing_callerClientId"); return null; } } // get ticket granting ticket final TicketGrantingTicket ticketGrantingTicket = (TicketGrantingTicket) this.ticketRegistry .getTicket(accessToken); if (ticketGrantingTicket == null || ticketGrantingTicket.isExpired()) { log.error("expired accessToken : {}", accessToken); writeErrorMessage(response, OAuthConstants.EXPIRED_ACCESS_TOKEN); return null; } // get ticket granting ticket for the user final TicketGrantingTicket userTicketGrantingTicket; if (StringUtils.equals(accessToken, userAccessToken)) userTicketGrantingTicket = ticketGrantingTicket; else { userTicketGrantingTicket = (TicketGrantingTicket) this.ticketRegistry.getTicket(userAccessToken); if (userTicketGrantingTicket == null || userTicketGrantingTicket.isExpired()) { log.error("expired user accessToken : {}", userAccessToken); writeErrorMessage(response, OAuthConstants.EXPIRED_ACCESS_TOKEN + "_for_user"); return null; } } // Retrieve all registered services final Collection<RegisteredService> services = servicesManager.getAllServices(); // If called accessToken and clientId are provided, check their validity if (!StringUtils.isBlank(callerAccessToken)) { // get ticket granting ticket for the caller final TicketGrantingTicket callerTicketGrantingTicket = (TicketGrantingTicket) this.ticketRegistry .getTicket(callerAccessToken); if (callerTicketGrantingTicket == null || callerTicketGrantingTicket.isExpired()) { log.error("expired accessToken : {}", callerAccessToken); writeErrorMessage(response, OAuthConstants.EXPIRED_ACCESS_TOKEN + "_for_caller"); return null; } // name of the CAS service for caller RegisteredService callerService = null; for (final RegisteredService aService : services) { if (StringUtils.equals(aService.getName(), callerClientId)) { callerService = aService; break; } } if (callerService == null) { log.error("nonexistent caller clientId : {}", callerClientId); writeErrorMessage(response, NONEXISTENT_CLIENT_ID + "for_caller"); return null; } } // if user clienId is provided, check its validity if (!StringUtils.isBlank(userClientId)) { RegisteredService userService = null; for (final RegisteredService aService : services) { if (StringUtils.equals(aService.getName(), userClientId)) { userService = aService; break; } } if (userService == null) { log.error("nonexistent clientId : {}", userClientId); writeErrorMessage(response, NONEXISTENT_CLIENT_ID + "_for_user"); return null; } } // check validity of clientId RegisteredService service = null; for (final RegisteredService aService : services) { if (StringUtils.equals(aService.getName(), clientId)) { service = aService; break; } } if (service == null) { log.error("nonexistent clientId : {}", clientId); writeErrorMessage(response, NONEXISTENT_CLIENT_ID); return null; } // check validity of target clientId RegisteredService targetService = null; for (final RegisteredService aService : services) { if (StringUtils.equals(aService.getName(), targetClientId)) { targetService = aService; break; } } if (targetService == null) { log.error("nonexistent target clientId : {}", clientId); writeErrorMessage(response, NONEXISTENT_CLIENT_ID + "for_target"); return null; } // TODO: check if the TGT is granted to the client?! // final TicketGrantingTicket rawTicket = // ((AbstractDistributedTicketRegistry.TicketGrantingTicketDelegator)ticketGrantingTicket).getTicket(); // final Field servicesField = // rawTicket.getClass().getDeclaredField("services"); // servicesField.setAccessible(true); // HashMap<String, Service> servicesMap = new HashMap<String, // Service>(); // servicesMap = (HashMap<String, Service>) // servicesField.get(rawTicket); // log.error("ServiceMaps is empty ? {}", servicesMap.isEmpty()); // for(Map.Entry<String, Service> entry : servicesMap.entrySet()){ // AbstractWebApplicationService webAppService = // (AbstractWebApplicationService) entry.getValue(); // log.error("Service for ticket {} is {}", rawTicket.getId(), // webAppService.getId()); // } // if (!servicesMap.containsKey(service.getId()) || // !servicesMap.get(service.getId()).equals(service)) { // log.error("Ticket is not granted to client : {}", clientId); // jsonGenerator.writeStartObject(); // jsonGenerator.writeStringField("error", TICKET_NOT_GRANTED); // jsonGenerator.writeEndObject(); // jsonGenerator.close(); // response.flushBuffer(); // return null; // } // Check if the caller has permission for retrieving permission information if (!targetClientId.equals(clientId)) { final Principal principal = ticketGrantingTicket.getAuthentication().getPrincipal(); if (!isPermitted(principal.getId(), targetService.getId())) { log.error("[{} from {}] is not permitted to retrieve permission information on [{}]", principal.getId(), clientId, targetClientId); writeErrorMessage(response, "permission_denied"); return null; } } final JsonFactory jsonFactory = new JsonFactory(); final JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(response.getWriter()); final Principal principal = userTicketGrantingTicket.getAuthentication().getPrincipal(); final Map<String, Set<String>> permissions = extractPermissions(targetService.getId(), principal.getId()); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField(CasWrapperProfile.ID, principal.getId()); jsonGenerator.writeArrayFieldStart("role_permissions"); for (final String roleName : permissions.keySet()) { jsonGenerator.writeStartObject(); jsonGenerator.writeArrayFieldStart(roleName); for (final String permission : permissions.get(roleName)) jsonGenerator.writeString(permission); jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); jsonGenerator.close(); response.flushBuffer(); return null; }
From source file:org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.java
String toJsonString(Object object) throws IOException { JsonFactory jsonFactory = httpClient.createJsonFactory(); StringWriter writer = new StringWriter(); JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(writer); jsonGenerator.useDefaultPrettyPrinter(); jsonGenerator.writeObject(object);// ww w . j a va 2s .c o m String result = writer.getBuffer().toString(); return result; }
From source file:org.jmxtrans.embedded.output.CopperEggWriter.java
public String write_tostring(JsonNode json) { ObjectMapper mapper = new ObjectMapper(); StringWriter out = new StringWriter(); try {/*from ww w. j a va 2 s. c o m*/ JsonFactory fac = new JsonFactory(); JsonGenerator gen = fac.createJsonGenerator(out); // Now write: mapper.writeTree(gen, json); gen.flush(); gen.close(); return out.toString(); } catch (Exception e) { exceptionCounter.incrementAndGet(); logger.warn("Exception in write_tostring: " + e); } return (null); }
From source file:com.buaa.cfs.conf.Configuration.java
/** * Writes out all the parameters and their properties (final and resource) to the given {@link Writer} The format of * the output would be { "properties" : [ {key1,value1,key1.isFinal,key1.resource}, {key2,value2, * key2.isFinal,key2.resource}... ] } It does not output the parameters of the configuration object which is loaded * from an input stream.// w w w . ja va 2 s .com * * @param out the Writer to write to * * @throws IOException */ public static void dumpConfiguration(Configuration config, Writer out) throws IOException { JsonFactory dumpFactory = new JsonFactory(); JsonGenerator dumpGenerator = dumpFactory.createJsonGenerator(out); dumpGenerator.writeStartObject(); dumpGenerator.writeFieldName("properties"); dumpGenerator.writeStartArray(); dumpGenerator.flush(); synchronized (config) { for (Entry<Object, Object> item : config.getProps().entrySet()) { dumpGenerator.writeStartObject(); dumpGenerator.writeStringField("key", (String) item.getKey()); dumpGenerator.writeStringField("value", config.get((String) item.getKey())); dumpGenerator.writeBooleanField("isFinal", config.finalParameters.contains(item.getKey())); String[] resources = config.updatingResource.get(item.getKey()); String resource = UNKNOWN_RESOURCE; if (resources != null && resources.length > 0) { resource = resources[0]; } dumpGenerator.writeStringField("resource", resource); dumpGenerator.writeEndObject(); } } dumpGenerator.writeEndArray(); dumpGenerator.writeEndObject(); dumpGenerator.flush(); }