コメントによると、ユーザー プリンシパルへのアクセスが必要です。次のように注入できます:@Inject Principal principal;
または、 Java EE 6 チュートリアル@Resource Principal principal;
を参照してください。
アップデート
直接の質問にお答えします。Java EE 7 (CDI 1.1) では、HttpServletRequest のインジェクションがすぐにサポートされます。ただし、Java EE 6 (CDI 1.0) では、これはそのままではサポートされていません。機能させるには、以下のクラスを Web アプリに含めます。
import javax.enterprise.inject.Produces;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class CDIServletRequestProducingListener implements ServletRequestListener {
private static ThreadLocal<ServletRequest> SERVLET_REQUESTS = new ThreadLocal<>();
@Override
public void requestInitialized(ServletRequestEvent sre) {
SERVLET_REQUESTS.set(sre.getServletRequest());
}
@Override
public void requestDestroyed(ServletRequestEvent sre) {
SERVLET_REQUESTS.remove();
}
@Produces
private ServletRequest obtain() {
return SERVLET_REQUESTS.get();
}
}
注: GlassFish 3.1.2.2 でのみテスト済み