package org.caudexorigo.jersey.examples;
import java.security.Principal;
import javax.ws.rs.core.SecurityContext;
import org.caudexorigo.http.netty.HttpAction;
import org.caudexorigo.http.netty.RequestRouter;
import org.caudexorigo.jersey.JerseyHttpAction;
import org.glassfish.jersey.server.ApplicationHandler;
import org.glassfish.jersey.server.ResourceConfig;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.http.HttpRequest;
public class SampleJerseyRouter implements RequestRouter
{
private static final String RESOURCES_PACKAGE = "org.caudexorigo.jersey.examples";
private final HttpAction jerseyAction;
public SampleJerseyRouter()
{
super();
final ResourceConfig res_conf = new ResourceConfig();
res_conf.packages(RESOURCES_PACKAGE);
ApplicationHandler application = new ApplicationHandler(res_conf);
jerseyAction = new JerseyHttpAction(application, res_conf, getSecurityContext(false));
}
private SecurityContext getSecurityContext(final boolean isSecure)
{
return new SecurityContext()
{
@Override
public boolean isUserInRole(String role)
{
return true;
}
@Override
public boolean isSecure()
{
return isSecure;
}
@Override
public Principal getUserPrincipal()
{
return new Principal()
{
@Override
public String getName()
{
return "<anonymous>";
}
};
}
@Override
public String getAuthenticationScheme()
{
return "<void-auth-scheme>";
}
};
}
@Override
public HttpAction map(ChannelHandlerContext ctx, HttpRequest req)
{
return jerseyAction;
}
}