在Spring中存储bean实例



我的web应用程序中有一个身份验证方法,它从另一个应用程序获得http参数。我从数据库中加载用户并将其存储在一个spring bean中。在我的登录控制器中它被实例化了,但是当我将它注入另一个控制器时,它失去了它的属性,当我想要到达我的用户时我得到'null'。如何使bean的属性在所有其他控制器中可用?我不想使用静态属性…我试图使bean '会话作用域',但它不起作用。

suerBean:

    @Service
@SessionScoped
public class SessionUserBean {
    public Dolgozo user;
    public Boolean userIsDolgozo;
    public Boolean userIsIranyito;
    public Boolean userIsVezeto;
    public Boolean userIsOsztalyVezeto;

    public void setUser(Dolgozo user) {
        this.user = user;
    }
    public Dolgozo getUser() {
        return user;
    }
}

设置user属性的值:

@Autowired
    private SessionUser sessionUser;
    @Autowired
    private SessionUserBean user;
    @Autowired
    private HttpServletRequest request;
    @RequestMapping("index.htm")
    public String doLogin(@RequestParam String token) {

        if (login.isUserAuthanticated(token)) {
            user.setUser(sessionUser.getDolgozo()); 
            return "sikeresBelepes";
        }
        return "sikertelenBelepes";
    }

我想在这里使用它:

@Autowired
    private SessionUserBean user;
    public void setUp() {
        employees = drp.findByCsoportID(user.getUser().getCsoportid().getId());
    }

真是一团糟!

为什么不使用Spring Security?它通过设置一组过滤器为您自动管理安全上下文。你可以在应用程序的任何地方访问用户信息。

如果没有,你必须在代码的某个地方设置你的user in会话,你不能只是自动安装它。这样的:

@RequestMapping("index.htm")
public String doLogin(@RequestParam String token) {
    if (login.isUserAuthanticated(token)) {
        user.setUser(sessionUser.getDolgozo()); 
        return "sikeresBelepes";
       session.addAttribute("securityUser", user);
    }
    return "sikertelenBelepes";
}

,然后从会话与getAttribute()

最新更新