AuthorizationToken maangement added
CAllerMethod management added git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/branches/common/common-gcore-stubs/1.0@119137 82a268e6-3cf1-43bd-a215-b396298e98cfsmartgears_4
parent
074b7b34ba
commit
03c097ddac
@ -0,0 +1,26 @@
|
||||
package org.gcube.common.clients.stubs.jaxws.handlers;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.soap.SOAPHeader;
|
||||
import javax.xml.ws.handler.soap.SOAPMessageContext;
|
||||
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.clients.stubs.jaxws.GCoreService;
|
||||
|
||||
public class AuthorizationHandler extends AbstractHandler {
|
||||
|
||||
/** Namespace of scope-related headers */
|
||||
public static final String TOKEN_NS = "http://gcube-system.org/namespaces/gcube-token";
|
||||
|
||||
/** Name of the scope call header. */
|
||||
public static final String TOKEN_HEADER_NAME = "gcube-token";
|
||||
public static final QName TOKEN_QNAME = new QName(TOKEN_NS,TOKEN_HEADER_NAME);
|
||||
|
||||
@Override
|
||||
public void handleRequest(GCoreService<?> target, SOAPHeader header, SOAPMessageContext context) throws Exception {
|
||||
String token = SecurityTokenProvider.instance.get();
|
||||
if (token!=null)
|
||||
addHeader(header,TOKEN_QNAME, token);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package org.gcube.common.clients.stubs.jaxws.proxies;
|
||||
|
||||
import java.lang.reflect.Proxy;
|
||||
|
||||
public class GenericProxyFactory {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T, I extends T> T getProxy(Class<T> intf,
|
||||
final I obj) {
|
||||
return (T)
|
||||
Proxy.newProxyInstance(obj.getClass().getClassLoader(),
|
||||
new Class[] { intf },
|
||||
new MethodRetriever<I>(obj));
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package org.gcube.common.clients.stubs.jaxws.proxies;
|
||||
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import org.gcube.common.authorization.library.provider.CalledMethodProvider;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class MethodRetriever<T> implements InvocationHandler{
|
||||
|
||||
public static Logger log = LoggerFactory.getLogger(MethodRetriever.class);
|
||||
|
||||
private T service;
|
||||
|
||||
public MethodRetriever(T service){
|
||||
this.service= service;
|
||||
}
|
||||
|
||||
public Object invoke(Object proxy, Method method,
|
||||
Object[] args) throws Throwable {
|
||||
CalledMethodProvider.instance.set(method.getName());
|
||||
try{
|
||||
return method.invoke(service, args);
|
||||
}finally{
|
||||
CalledMethodProvider.instance.reset();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
org.gcube.common.clients.stubs.jaxws.handlers.ScopeHandler
|
||||
org.gcube.common.clients.stubs.jaxws.handlers.AuthorizationHandler
|
||||
org.gcube.common.clients.stubs.jaxws.handlers.TargetServiceHandler
|
||||
org.gcube.common.clients.stubs.jaxws.handlers.ClientInfoHandler
|
||||
org.gcube.common.clients.stubs.jaxws.handlers.LegacyWSAddressingHandler
|
Loading…
Reference in New Issue