@Override public String edit() { try { String check = this.checkService(this.getServiceKey()); if (null != check) return check; ApiService apiService = this.getApiCatalogManager().getApiService(this.getServiceKey()); this.setApiParameters(apiService.getMaster().getParameters()); this.setApiMethodName(apiService.getMaster().getMethodName()); this.setApiParameterValues(apiService.getParameters()); this.setDescriptions(apiService.getDescription()); this.setPublicService(apiService.isPublicService()); this.setActiveService(apiService.isActive()); this.setMyEntandoService(apiService.isMyEntando()); this.setServiceKey(apiService.getKey()); if (null != apiService.getFreeParameters()) { List<String> freeParams = Arrays.asList(apiService.getFreeParameters()); this.setFreeParameters(freeParams); } this.setTag(apiService.getTag()); this.setStrutsAction(ApsAdminSystemConstants.EDIT); } catch (Throwable t) { ApsSystemUtils.logThrowable(t, this, "edit"); return FAILURE; } return SUCCESS; }
protected ServiceInfo createServiceInfo( ApiService service, String langCode, String defaultLangCode) { String description = service.getDescription().getProperty(langCode); if (null == description || description.trim().length() == 0) { description = service.getDescription().getProperty(defaultLangCode); } ServiceInfo smallService = new ServiceInfo(service.getKey(), description, service.getTag(), service.isMyEntando()); String[] freeParameters = service.getFreeParameters(); if (null != freeParameters && freeParameters.length > 0) { for (int i = 0; i < freeParameters.length; i++) { String freeParameter = freeParameters[i]; ApiMethodParameter apiParameter = service.getMaster().getParameter(freeParameter); if (null != apiParameter) { ServiceParameterInfo spi = new ServiceParameterInfo(apiParameter); ApsProperties serviceParameters = service.getParameters(); String defaultValue = (null != serviceParameters) ? serviceParameters.getProperty(freeParameter) : null; if (null != defaultValue) { spi.setDefaultValue(defaultValue); spi.setRequired(false); } smallService.addParameter(spi); } } } return smallService; }
public Map<String, ApiService> getServices(String tag, Boolean myentando) throws ApsSystemException { Map<String, ApiService> services = this.getServices(); if ((null == tag || tag.trim().length() == 0) && null == myentando) { return services; } Map<String, ApiService> servicesToReturn = new HashMap<String, ApiService>(); try { Iterator<ApiService> iter = services.values().iterator(); while (iter.hasNext()) { ApiService apiService = iter.next(); String serviceTag = apiService.getTag(); boolean tagCheck = (null == tag || (null != serviceTag && serviceTag.toLowerCase().indexOf(tag.trim().toLowerCase()) > -1)); boolean myentandoCheck = (null == myentando || (myentando.booleanValue() == apiService.isMyEntando())); if (tagCheck && myentandoCheck) { servicesToReturn.put(apiService.getKey(), apiService); } } } catch (Throwable t) { ApsSystemUtils.logThrowable(t, this, "getServices", "Error extracting services"); throw new ApsSystemException("Error extracting services", t); } return servicesToReturn; }
public void updateService(ApiService service) { Connection conn = null; PreparedStatement stat = null; try { conn = this.getConnection(); conn.setAutoCommit(false); stat = conn.prepareStatement(UPDATE_SERVICE); // SET resource = ? , description = ? , parameters = ? , tag = ? , freeparameters = ? , // isactive = ? , ispublic = ? WHERE servicekey = ? "; stat.setString(1, service.getMaster().getResourceName()); stat.setString(2, service.getDescription().toXml()); stat.setString(3, service.getParameters().toXml()); stat.setString(4, service.getTag()); if (null == service.getFreeParameters() || service.getFreeParameters().length == 0) { stat.setNull(5, Types.VARCHAR); } else { ServiceExtraConfigDOM dom = new ServiceExtraConfigDOM(); stat.setString(5, dom.extractXml(service.getFreeParameters())); } int isActive = (service.isActive()) ? 1 : 0; stat.setInt(6, isActive); int isPublic = (service.isPublicService()) ? 1 : 0; stat.setInt(7, isPublic); int isMyEntando = (service.isMyEntando()) ? 1 : 0; stat.setInt(8, isMyEntando); stat.setString(9, service.getKey()); stat.executeUpdate(); conn.commit(); } catch (Throwable t) { this.executeRollback(conn); processDaoException(t, "Error while updating a service", "updateService"); } finally { closeDaoResources(null, stat, conn); } }
public void updateService(ApiService service) throws ApsSystemException { try { if (null == service) { throw new ApsSystemException("Null api service to update"); } ApiService masterService = this.getMasterServices().get(service.getKey()); if (null == masterService) { throw new ApsSystemException("Api service '" + service.getKey() + "' does not exist"); } masterService.setActive(service.isActive()); masterService.setPublicService(service.isPublicService()); this.getApiCatalogDAO().updateService(masterService); } catch (Throwable t) { ApsSystemUtils.logThrowable( t, this, "updateApiServiceStatus", "Error updating api service '" + service.getKey() + "'"); throw new ApsSystemException("Error updating service '" + service.getKey() + "'", t); } }
protected boolean checkServiceAuthorization( ApiService service, Properties properties, boolean throwApiException) throws ApiException, Throwable { if (!service.getRequiredAuth()) { return true; } try { UserDetails user = (UserDetails) properties.get(SystemConstants.API_USER_PARAMETER); if (null == user) { throw new ApiException( IApiErrorCodes.API_AUTHENTICATION_REQUIRED, "Authentication is mandatory for service '" + service.getKey() + "'", Response.Status.UNAUTHORIZED); } if ((null != service.getRequiredGroup() && !this.getAuthorizationManager().isAuthOnGroup(user, service.getRequiredGroup())) || (null != service.getRequiredPermission() && !this.getAuthorizationManager() .isAuthOnPermission(user, service.getRequiredPermission()))) { throw new ApiException( IApiErrorCodes.API_AUTHORIZATION_REQUIRED, "Permission denied for service '" + service.getKey() + "'", Response.Status.UNAUTHORIZED); } } catch (ApiException ae) { if (throwApiException) { throw ae; } return false; } catch (Throwable t) { ApsSystemUtils.logThrowable( t, this, "checkServiceAuthorization", "Error checking auth for service - key '" + service.getKey() + "'"); throw t; } return true; }
public void saveService(ApiService service) throws ApsSystemException { try { if (null == service) { throw new ApsSystemException("Null api service to save"); } ApiMethod master = service.getMaster(); if (null == master || null == this.getMethod( master.getHttpMethod(), master.getNamespace(), master.getResourceName())) { throw new ApsSystemException("null or invalid master method of service to save"); } if (null != this.getMasterServices().get(service.getKey())) { this.getApiCatalogDAO().updateService(service); } else { this.getApiCatalogDAO().addService(service); } this.getMasterServices().put(service.getKey(), service); } catch (Throwable t) { ApsSystemUtils.logThrowable(t, this, "saveService", "Error saving service"); throw new ApsSystemException("Error saving service", t); } }