public <T> T getHeader(Class<T> type, String name) { WorkContext workContext = WorkContextCache.getThreadWorkContext(); return workContext.getHeader(type, name); }
public SecuritySubject getCurrentSubject() { WorkContext workContext = WorkContextCache.getThreadWorkContext(); return workContext.getSubject(); }
public void removeHeader(String name) { WorkContext workContext = WorkContextCache.getThreadWorkContext(); workContext.removeHeader(name); } }
public void removeHeader(String name) { WorkContext workContext = WorkContextCache.getThreadWorkContext(); workContext.removeHeader(name); } }
public <T> T getHeader(Class<T> type, String name) { WorkContext workContext = WorkContextCache.getThreadWorkContext(); return workContext.getHeader(type, name); }
public void setHeader(String name, Object value) { WorkContext workContext = WorkContextCache.getThreadWorkContext(); workContext.setHeader(name, value); }
public void setHeader(String name, Object value) { WorkContext workContext = WorkContextCache.getThreadWorkContext(); workContext.setHeader(name, value); }
public SecuritySubject getCurrentSubject() { WorkContext workContext = WorkContextCache.getThreadWorkContext(); return workContext.getSubject(); }
public Subject getSecuritySubject() { WorkContext workContext = WorkContextCache.getThreadWorkContext(); return workContext.getSubject().getJaasSubject(); }
public Subject getSecuritySubject() { WorkContext workContext = WorkContextCache.getThreadWorkContext(); return workContext.getSubject().getJaasSubject(); }
private <T> PropagatingCallable<T> createCallable(Callable<T> callable) { WorkContext context = WorkContextCache.getThreadWorkContext(); List<CallbackReference> stack = context.getCallbackReferences(); if (stack != null && !stack.isEmpty()) { // clone the callstack to avoid multiple threads seeing changes stack = new ArrayList<CallbackReference>(stack); } Map<String, Object> headers = context.getHeaders(); if (headers != null && !headers.isEmpty()) { // clone the headers to avoid multiple threads seeing changes headers = new HashMap<String, Object>(headers); } SecuritySubject subject = context.getSubject(); return new PropagatingCallable<T>(callable, stack, headers, subject); }
private PropagatingRunnable createRunnable(Runnable runnable) { WorkContext context = WorkContextCache.getThreadWorkContext(); List<CallbackReference> stack = context.getCallbackReferences(); if (stack != null && !stack.isEmpty()) { // clone the callstack to avoid multiple threads seeing changes stack = new ArrayList<CallbackReference>(stack); } Map<String, Object> headers = context.getHeaders(); if (headers != null && !headers.isEmpty()) { // clone the headers to avoid multiple threads seeing changes headers = new HashMap<String, Object>(headers); } SecuritySubject subject = context.getSubject(); return new PropagatingRunnable(runnable, stack, headers, subject); }
public Object invoke(Method method, Object[] args) throws Throwable { InvocationChain invocationChain = chains.get(method.getName()); if (invocationChain == null) { throw new ServiceRuntimeException("Unknown resource method: " + method.toString()); } WorkContext context = WorkContextCache.getThreadWorkContext(); // work context set previously in RsContainer Message message = MessageCache.getAndResetMessage(); try { if (authenticate) { authenticate(context); } message.setWorkContext(context); message.setBody(args); if (invocationChain != null) { Interceptor headInterceptor = invocationChain.getHeadInterceptor(); Message ret = headInterceptor.invoke(message); if (ret.isFault()) { return handleFault(ret); } else { return ret.getBody(); } } else { return null; } } catch (RuntimeException e) { throw new InvocationTargetException(e); } finally { message.reset(); } }