java - 在 Spring 中存储 bean 实例

标签 java spring tomcat spring-mvc spring-webflow

我的 Web 应用程序中有一个身份验证方法,它从另一个应用程序获取一个 http 参数。我从数据库加载我的用户并将其存储在一个 spring bean 中。在我的登录 Controller 中,它被实例化了,但是当我将它注入(inject)另一个 Controller 时,它失去了它的属性,当我想联系我的用户时,我得到了“null”。我怎样才能使一个 bean 的属性在所有其他 Controller 中可用?我不想使用静态属性...我试图让 bean 成为“ session 范围”,但它不起作用。

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;
    }
}

我设置了用户属性的值:

@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 ?它自动管理Security Context为您设置一组过滤器。您可以在应用的任何位置访问用户信息。

如果不是,您必须在代码中的某处设置 session 中的用户,您不能只是 Autowiring 它。像这样:

@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() 从 session 中获取它

关于java - 在 Spring 中存储 bean 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15172414/

相关文章:

java - 如何使用replaceAll()来替换算术运算(即0+1)

spring - 运行时tomcat和spring web app报错

java - 升级到 TomEE 1.7.1 后的类加载问题

java - 在 Restful Web 服务中打开 Tomcat 服务器上的 html 文件

java - 如何从 bluJay 中的另一个类调用变量

java - Querydsl:如何编写 "complex"查询

java - `int.class.cast(null)` 起作用的原因是什么?

java - ValidationMessages.properties 未通过 BindException 解析

java - spring 3问题中在ajax json中获取阿拉伯语单词

tomcat - 分享tomcat/webapps