package org.koshinuke.jersey;
import java.lang.reflect.Type;
import javax.ws.rs.core.Context;
import javax.ws.rs.ext.Provider;
import org.koshinuke.model.DefaultKoshinukePrincipal;
import org.koshinuke.model.KoshinukePrincipal;
import com.sun.jersey.core.spi.component.ComponentContext;
import com.sun.jersey.core.spi.component.ComponentScope;
import com.sun.jersey.spi.inject.Injectable;
import com.sun.jersey.spi.inject.InjectableProvider;
import com.sun.jersey.spi.resource.Singleton;
/**
* @author taichi
*/
@Provider
@Singleton
public class TestPrincipalProvider implements InjectableProvider<Context, Type> {
@Override
public ComponentScope getScope() {
return ComponentScope.PerRequest;
}
@Override
public Injectable<KoshinukePrincipal> getInjectable(ComponentContext ic,
Context a, Type t) {
if (KoshinukePrincipal.class.equals(t) == false) {
return null;
}
return new Injectable<KoshinukePrincipal>() {
@Override
public KoshinukePrincipal getValue() {
return new DefaultKoshinukePrincipal("testname",
"test@koshinuke.org");
}
};
}
}