gpt4 book ai didi

java - 基本 Controller ,设置私有(private)成员变量,这安全吗?

转载 作者:行者123 更新时间:2023-12-02 07:22:22 26 4
gpt4 key购买 nike

我想创建一个基本 Controller 类,我的其他 Controller 将从中继承。我有一个简单的公共(public) api,它通过查询字符串获取身份验证 token ,所以我想这样做:

public class MyBaseController {
private String token = "";
public MyBaseController() {
}
}

然后我真正的 Controller 会是这样的:

@Controller
@RequestMapping("/api/users")
public class UserController extends MyBaseControler {

// controller methods here
}

我的问题是,如何访问基本 Controller 中的 HttpServletRequest,并获取查询字符串参数“?token=abc123”值并使用该值设置 token var。

这个线程安全吗? 据我了解,每个请求都会有一个新的 Controller 实例,正确吗?

最佳答案

如果你的 Controller 是无状态的,那就更好了。

您可以根据需要向它们注入(inject) Spring 服务,但我不明白为什么它们必须将 token 的值作为成员变量。

您更有可能希望将 token 存储在 session 范围内。我认为你的想法是错误的。

我要指出的是,Spring 本身已经放弃了 Controller 的继承。它们现在都是基于注释的,没有共同的基类或接口(interface)。为什么您认为回归他们放弃的设计是一件好事?

您也不需要基本 Controller 。

关于java - 基本 Controller ,设置私有(private)成员变量,这安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14047513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com