Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6239655
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T11:25:40+00:00 2026-05-24T11:25:40+00:00

I want to inject the current user using @Inject @Current User across all layers

  • 0

I want to inject the current user using @Inject @Current User across all layers (i.e. web layer, EJB layer). In order to do this, I have the following CDI Producer method:

@Named
@SessionScoped
public class UserController {
   @Resource SessionContext sessionContext;
   @EJB UserDao userDao;

   @Produces @Current
   public User getCurrentUser() {
     String username = sessionContext.getCallerPrincipal().getName();
     User user = userDao.findByUsername(username);
   }
}

@Qualifier
@Target({TYPE, METHOD, PARAMETER, FIELD})
@Retention(RUNTIME)
public @interface Current{}

Now, I want to inject the current user into an EJB stateless session bean as follows:

@Stateless
public class SomeBackendService {
   @Inject @Current
   private User user;
}

My question: Is the current user object always re-injected after the session changes, because the dependencies of a stateless session bean are normally injected once at creation time and the bean may be pooled and used across different sessions?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T11:25:41+00:00Added an answer on May 24, 2026 at 11:25 am

    Although I haven’t tried this exact situation, in CDI beans are normally not re-injected. Instead, a proxy is injected that is aware of its context.

    Via this mechanism, it’s possible to inject say a session scoped bean in an application scoped bean. Every user of the application scoped bean goes to the same bean and the same proxy, but the proxy will then dynamically resolve calls on it to a different bean for each user.

    So even though the scope of @Stateless is basically ‘application’, it would be possible that the proxy that represents User in your `SomeBackendService’ still delegates to the correct session scoped version.

    p.s.

    If with layers you actually mean modules as in web and EJB modules that are part of an EAR, it’s going to be a little bit more complicated, as CDI doesn’t always works as expected between modules (especially in JBoss AS). This is partly due to the ambiguity of what an ‘application’ and thus the application scope is within an EAR.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to inject the current namepace on my snippet. Does anyone have an
I have a bean that i want to inject with a named list using
I want to inject a confirmation dialog to allow the user to cancel the
I'm using Structure map and want to inject instance (constructed by container) into controller's
I'm using Autofac. I want to inject a different implementation of a dependency based
I want to have HttpModule to inject javascripts, css links into HEAD element from
I have a service that I want to inject into multiple client classes. I
I'm using Spring 3 and want to inject some dependencies into a class that
I have two web site that are 99% similar. They share all of the
I want to inject some Json into the Html page returned by the server?

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.