/** Get the OAI-PMH server URL of the current organization. */ public static Option<String> oaiPmhServerUrlOfCurrentOrganization(SecurityService secSvc) { return option(secSvc.getOrganization().getProperties().get(ORG_CFG_OAIPMH_SERVER_HOSTURL)); } }
/** * {@inheritDoc} * * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, * javax.servlet.FilterChain) */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // Make sure we have an organization Organization org = securityService.getOrganization(); if (org == null) { ((HttpServletResponse) response).sendError(HttpServletResponse.SC_NOT_FOUND); return; } // Get a hold of the security filter for that organization Filter filter = orgSecurityFilters.get(org.getId()); if (filter == null) { ((HttpServletResponse) response).sendError(HttpServletResponse.SC_FORBIDDEN); return; } filter.doFilter(request, response, chain); } }
/** * {@inheritDoc} * * @see org.opencastproject.workingfilerepository.api.WorkingFileRepository#getBaseUri() */ @Override public URI getBaseUri() { if (securityService.getOrganization() != null) { Map<String, String> orgProps = securityService.getOrganization().getProperties(); if (orgProps != null && orgProps.containsKey(OpencastConstants.WFR_URL_ORG_PROPERTY)) { try { return new URI(UrlSupport.concat(orgProps.get(OpencastConstants.WFR_URL_ORG_PROPERTY), servicePath)); } catch (URISyntaxException ex) { logger.warn("Organization working file repository URL not set, fallback to server URL"); } } } return URI.create(UrlSupport.concat(serverUrl, servicePath)); }
@GET @Path("config.json") @Produces(MediaType.APPLICATION_JSON) @RestQuery(name = "configJson", description = "Paella configuration", reponses = { @RestResponse(description = "Returns the paella configuration", responseCode = HttpServletResponse.SC_OK) }, returnDescription = "") public String getMyInfo() throws IOException { // Add the current user's organizational information Organization org = securityService.getOrganization(); File configFile = new File(PathSupport.concat(new String[] { paellaConfigFolder, org.getId(), "config.json" })); return FileUtils.readFileToString(configFile, "UTF-8"); } }
@Override public boolean accepts(String baseUrl) { // Don't accept URLs without an organization context // (for example from the ServiceRegistry JobProducerHeartbeat) if (securityService.getOrganization() == null) return false; String orgId = securityService.getOrganization().getId(); try { new URI(baseUrl); KeyEntry keyEntry = getKeyEntry(baseUrl); return ((keyEntry != null) && (StringUtils.equals(keyEntry.getOrganization(), ANY_ORGANIZATION) || StringUtils.equals(keyEntry.getOrganization(), orgId))); } catch (URISyntaxException e) { getLogger().debug("Unable to support url {} because", baseUrl, e); return false; } }
/** Run function <code>f</code> within the context. */ public <A> A runInContext(Supplier<A> f) { final Organization prevOrg = sec.getOrganization(); // workaround: if no organization is bound to the current thread sec.getUser() will throw a NPE final User prevUser = prevOrg != null ? sec.getUser() : null; sec.setOrganization(org); sec.setUser(user); try { return f.get(); } finally { sec.setOrganization(prevOrg); sec.setUser(prevUser); } }
/** * Get the URI for a static file resource depending on whether to get it direct from Opencast or from a webserver. * * @param uuid * The unique identifier for the static file. * @return The URL for the static file resource. * @throws NotFoundException * if the resource couldn't been found */ public URI getStaticFileURL(String uuid) throws NotFoundException { if (useWebserver && webserverURL.isSome()) { return URI.create(UrlSupport.concat(webserverURL.get(), securityService.getOrganization().getId(), uuid, staticFileService.getFileName(uuid))); } else { return URI.create(UrlSupport.concat(serverUrl, STATICFILES_URL_PATH, uuid)); } }
/** * Run function <code>f</code> in the context described by the given organization and user. * * @param sec * Security service to use for getting data * @param org * Organization to switch to * @param user * User to switch to * @param fn * Function to execute */ public static void runAs(SecurityService sec, Organization org, User user, Runnable fn) { final Organization prevOrg = sec.getOrganization(); final User prevUser = prevOrg != null ? sec.getUser() : null; sec.setOrganization(org); sec.setUser(user); try { fn.run(); } finally { sec.setOrganization(prevOrg); sec.setUser(prevUser); } }
/** Get a user of a certain organization by its ID. */ public static Option<User> getUserOfOrganization(SecurityService sec, OrganizationDirectoryService orgDir, String orgId, UserDirectoryService userDir, String userId) { final Organization prevOrg = sec.getOrganization(); try { final Organization org = orgDir.getOrganization(orgId); sec.setOrganization(org); return option(userDir.loadUser(userId)); } catch (NotFoundException e) { return none(); } finally { sec.setOrganization(prevOrg); } }
final Organization organization = securityService.getOrganization(); if (organization != null) { httpUriRequest.setHeader(SecurityConstants.ORGANIZATION_HEADER, organization.getId());
Organization currentOrganization = securityService.getOrganization();
final Organization originalOrganization = securityService.getOrganization(); final User originalUser = securityService.getUser();
post.addHeader(ORGANIZATION_HEADER, securityService.getOrganization().getId()); post.addHeader(USER_HEADER, securityService.getUser().getUsername());
/** * Get a user and an organization. Only returns something if both elements can be determined. */ public static Option<Tuple<User, Organization>> getUserAndOrganization(SecurityService sec, OrganizationDirectoryService orgDir, String orgId, UserDirectoryService userDir, String userId) { final Organization prevOrg = sec.getOrganization(); try { final Organization org = orgDir.getOrganization(orgId); sec.setOrganization(org); return option(userDir.loadUser(userId)).fmap(new Function<User, Tuple<User, Organization>>() { @Override public Tuple<User, Organization> apply(User user) { return tuple(user, org); } }); } catch (NotFoundException e) { return none(); } finally { sec.setOrganization(prevOrg); } }
if (securityService != null) { job.setCreator(securityService.getUser().getUsername()); job.setOrganization(securityService.getOrganization().getId());