Tôi đang cố gắng @Inject
một bean @SessionScoped
thành LọcSử dụng CDI Injection trong một Servlet
@WebFilter("/*")
public class IdentityFilter implements Filter, Serializable {
@Inject
private LoginUser loginUser;
...
nơi LoginUser
là @SessionScoped
Mục đích là cho loginUser để đại diện cho người dùng đăng nhập cho phiên.
Vấn đề là dường như tôi không phải lúc nào cũng nhận được loginUser
từ phiên hiện tại, tôi nhận được 'rò rỉ' giữa các phiên làm đối tượng LoginUser của một phiên đang được chia sẻ với một phiên khác. Rõ ràng điều này là không tốt.
Tôi tự hỏi nếu điều này là do đối tượng Filter
là một đơn hoặc ít nhất được sử dụng lại giữa các yêu cầu và phiên của vùng chứa (glassfish). (Phải không?)
Có cách nào tốt hơn để lấy đối tượng LoginUser
cho phiên hiện tại mà không sử dụng thuộc tính trên Bộ lọc không?
Bạn có thể dán Mã người dùng đăng nhập không? Nếu bạn không có một hàm tạo riêng không có tham số hoặc lớp là cuối cùng hoặc có một phương thức cuối cùng thì nó sẽ không hoạt động. –
Cảm ơn Fabricio. Tôi nghĩ rằng điều này là ok, nó tiêm như vậy phải được. Vấn đề là chia sẻ ... Tôi nghĩ rằng tôi đã tìm thấy những gì sai, sẽ đăng. – Jonathan