/** 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 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); } }
return; securityService.setOrganization(org); securityService.setUserIP(httpRequest.getHeader(X_FORWARDED_FOR)); } else { logger.trace("Using client IP from request '{}'", httpRequest.getRemoteAddr()); securityService.setUserIP(httpRequest.getRemoteAddr()); securityService.setOrganization(null); securityService.setUser(null); securityService.setUserIP(null);
final Organization organization = securityService.getOrganization(); if (organization != null) { httpUriRequest.setHeader(SecurityConstants.ORGANIZATION_HEADER, organization.getId()); final User currentUser = securityService.getUser(); if (currentUser != null) { httpUriRequest.setHeader(SecurityConstants.USER_HEADER, currentUser.getUsername());
private int getTotalByMediapackageID(String mediapackageId, EntityManager em) { Query q = em.createNamedQuery("findTotalByMediapackageId"); q.setParameter("userId", securityService.getUser().getUsername()); q.setParameter("mediapackageId", mediapackageId); return ((Long) q.getSingleResult()).intValue(); }
/** * {@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); } }
User creator = userDirectoryService.loadUser(job.getCreator()); Organization organization = organizationDirectoryService.getOrganization(job.getOrganization()); securityService.setUser(creator); securityService.setOrganization(organization); if (Status.QUEUED.equals(job.getStatus())) { job.setStatus(Status.DISPATCHING); throw new IllegalStateException("Error unmarshaling job", e); securityService.setUser(null); securityService.setOrganization(null);
/** * This method is signing the URI with a policy to expire it. * * @param uri * the URI to sign * * @return the signed URI * @throws URISyntaxException * if the input URI contains syntax errors */ private URI sign(URI uri) throws URISyntaxException { String path = uri.toString(); if (urlSigningService != null && urlSigningService.accepts(path)) { try { String clientIP = null; if (signWithClientIP) { clientIP = securityService.getUserIP(); } path = urlSigningService.sign(path, expireSeconds, null, clientIP); } catch (UrlSigningException e) { logger.debug("Unable to sign url '" + path + "' so not adding a signed query string."); } } return new URI(path); }
User currentUser = securityService.getUser(); Organization currentOrganization = securityService.getOrganization();
private int getTotal() { EntityManager em = null; try { em = emf.createEntityManager(); Query q = em.createNamedQuery("findTotal"); q.setParameter("userId", securityService.getUser().getUsername()); return ((Long) q.getSingleResult()).intValue(); } finally { if (em != null) em.close(); } }
/** 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)); } }
/** * 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); } }
@Override public Void call() throws Exception { final SecurityService securityService = getSecurityService(); final ServiceRegistry serviceRegistry = getServiceRegistry(); final Job jobBeforeProcessing = serviceRegistry.getJob(jobId); if (currentJobId.isSome()) serviceRegistry.setCurrentJob(serviceRegistry.getJob(currentJobId.get())); final Organization organization = getOrganizationDirectoryService() .getOrganization(jobBeforeProcessing.getOrganization()); securityService.setOrganization(organization); final User user = getUserDirectoryService().loadUser(jobBeforeProcessing.getCreator()); securityService.setUser(user); try { final String payload = process(jobBeforeProcessing); handleSuccessfulProcessing(payload); } catch (Throwable t) { handleFailedProcessing(t); } finally { serviceRegistry.setCurrentJob(null); securityService.setUser(null); securityService.setOrganization(null); } return null; }
/** * 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); } }
job = new JobImpl(idCounter.addAndGet(1)); if (securityService != null) { job.setCreator(securityService.getUser().getUsername()); job.setOrganization(securityService.getOrganization().getId());
private int getTotal(String type, String mediapackageId, EntityManager em) { Query q = em.createNamedQuery("findTotalByTypeAndMediapackageId"); q.setParameter("userId", securityService.getUser().getUsername()); q.setParameter("type", type); q.setParameter("mediapackageId", mediapackageId); return ((Long) q.getSingleResult()).intValue(); }
/** * {@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)); }
try { organization = organizationDirectoryService.getOrganization(creatorOrganization); securityService.setOrganization(organization); } catch (NotFoundException e) { logger.debug("Skipping dispatching of job for non-existing organization '{}'", creatorOrganization); continue; securityService.setUser(user); logger.error("Error dispatching job " + job, cause); } finally { securityService.setUser(null); securityService.setOrganization(null);
final Organization originalOrganization = securityService.getOrganization(); final User originalUser = securityService.getUser(); securityService.setOrganization(requestedOrganization); logger.trace("Switching to organization '{}' from request header {}", requestedOrganization.getId(), ORGANIZATION_HEADER); securityService.setUser(requestedUser); Stream.$(requestedRoles).map(toJaxbRole._2(requestedOrganization)).toSet()); logger.trace("Request roles '{}' are amended to user '{}'", rolesHeader, requestedUser.getUsername()); securityService.setUser(requestedUser); securityService.setOrganization(originalOrganization); securityService.setUser(originalUser);
post.addHeader(ORGANIZATION_HEADER, securityService.getOrganization().getId()); post.addHeader(USER_HEADER, securityService.getUser().getUsername());