gpt4 book ai didi

spring - 一次只有一个用户使用整个 Web 应用程序 - Spring boot

转载 作者:行者123 更新时间:2023-12-04 01:12:36 26 4
gpt4 key购买 nike

在 spring boot 应用程序中,一次只能有一个用户使用特定页面(我们称之为 home.jsp)。如果另一个用户在访问同一 url 时出现,则应将其重定向到不同的页面(我们称之为 another_home.jsp)。用户不登录,只是按原样使用应用程序。 home.jsp 可以使用任何策略,可以是先到先得或任何其他策略。

如果有多个用户同时使用应用程序,则只有一个用户应该使用 home.html,其他所有用户都应该使用 another_home.jsp

由于应用程序不需要登录,我相信我需要匿名 session 。此外, session 需要在一段时间不活动后过期。我搜索了 spring security 但找不到任何东西。

最佳答案

我认为你甚至不需要 spring security。简单的 http session 也可以。据我所知,您只想将流分配给一个用户,为此您需要第一个用户的 session ID,您可以在请求再次出现时与它进行比较。因此,存储 session ID 并在超时后使用一些 Time 对象或 Date 对象过期。

在属性中

server.servlet.session.timeout = 600   // 10 minutes

像这样

private String currSessionId = null;
private Date lastDate = new Date();
private Integer TIMEOUT = 600000; // 10 minutes

public String loadHomePage(Model model) {
if(currSessionId!=null && new Date().getTime()- lastDate.getTime()>TIMEOUT){
currSessionId = null;
}
if(currSessionId==null){
currSessionId = session.getId();
lastDate = new Date();
return "home";
}else{
if(session.getId().equals(currSessionId)){
return "home";
}else{
return "another_home";
}
}
}

当您没有要管理的登录用户并且也不需要记住用户离开的先前状态时,这就很简单了。让我知道是否有帮助。

关于spring - 一次只有一个用户使用整个 Web 应用程序 - Spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64374150/

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