我一直在研究JSF应用程序.在一个地方,我要在托管bean中调用一个动作.在处理完成之前,该操作实际上处理了数百条记录和会话超时.
虽然所有记录都已成功处理,但会话过期并且用户被发送到登录页面.
我试过添加
session.setMaxInactiveInterval(0);
在处理记录之前没有任何效果.
如何在此过程中防止会话超时.
1-我有一个调用动作的Ajax链接,该动作返回一个视图,该视图在特定Div中打开(将其视为用相应视图更新div的菜单)2-如果会话超时返回我的登录视图
所以,如果我点击链接并且会话超时,则登录视图在div中打开而不是在整个页面中
我应该怎么做,如果会话超时它返回我的div上的新页面中的登录视图?
我有一些关于php会话的问题:
由于默认值session.gc_maxlifetime是24分钟,那么这意味着,任何一届会议的文件不会被修改为24分钟,将被删除,会话将自动失效.
如果我session_destroy()在我的代码中使用会话将被取消设置,但会话文件本身将不会被删除,直到自上次修改后经过24分钟.
延长会话寿命(超过24分钟)的唯一方法是扩展session.gc_maxlifetime到更大的值.
这些都是正确的还是我弄错了?
此外,如果我session_set_save_handler()将会话存储在数据库中(使用),所有这些规则是否适用于它们?
我有一个对MVC的ajax调用,它返回一个partialview.在会话结束或cookie过期之前,这一切都很好.当我进行ajax调用时,它会显示div中的内容,该div用于部分视图.如何在ajax调用期间检测到我的会话已过期并正确地重定向到完整屏幕/页面
我正在使用session[:hash_name]ruby on rails来保存会话信息,例如用户名和内容.
我试图找到一种方法来使这个会话到期,而无需用户注销.特别是在两种情况下:一段时间后它需要过期以及用户关闭浏览器时.
到目前为止,我已经找到另一个参数cookies[:hash_name],它可以在一段时间后过期.但我不确定如何在每个用户请求中检查此参数,然后调用reset_session.重置会话时,我需要将用户重定向到登录页面.
任何解决这两个问题的建议都会受到很大的影响.
在我的应用程序中,如果用户未登录,我会限制对某些操作和页面的访问.我有:
var restrict = function(req, res, next) {
if (!req.user) {
console.log("USER isn't logged in.")
return res.status(403).send('Access or action denied, please log in');
}
next();
}
app.get('/stocks', restrict, MainHandler.findAllStocksFromUser);
app.get('/stocks/:id', MainHandler.findStockByIdAndDates);
app.put('/stocks/:id/stockActions', restrict, MainHandler.handleStockAction);
Run Code Online (Sandbox Code Playgroud)
我本质上是在每次客户端向服务器发出请求时尝试刷新会话,这样服务器就不会注销用户/销毁会话.对于测试,我希望会话过期/用户在20秒后退出而无需用户向服务器发出请求.我有:
app.use(session({secret: 'secret', saveUninitialized: true, resave: true, expires: new Date(Date.now() + (20000))}));
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用中间件在每次用户发出请求时刷新过期日期:
// Session-persisted message middleware
app.use(function(req, res, next){
req.session.cookie.expires = new Date(Date.now() + 20000);
next();
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我从客户端登录并单击,导致对服务器的请求,我仍然会在20秒后在客户端上收到登录错误,尽管尝试"刷新"中间件中的会话.我也尝试使用与中间件相同的策略使用maxAge.有任何想法吗?谢谢!
我正在使用Spring MVC/Security 3.X.问题是,每当会话超时时,我在登录页面上获得403 ,其中Spring框架正在抛出"InvalidCsrfTokenException":
threw exception [org.springframework.security.web.csrf.InvalidCsrfTokenException: Invalid CSRF Token '7b4aefe9-6685-4c70-adf1-0d633680523a' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.] with root cause
org.springframework.security.web.csrf.InvalidCsrfTokenException: Invalid CSRF Token '7b4aefe9-6685-4c70-adf1-0d633680523a' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:119)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at …Run Code Online (Sandbox Code Playgroud) java csrf spring-security session-timeout http-status-code-403
如果上传了几个非常大的文件,会发生会话超时吗?想象一下,我上传了一个5 GByte的大文件,并设置了短会话超时.流式传输文件时会发生会话超时吗?
这可能是一个相当简单的问题.我找到了几十个类似的,询问如何在PHP中缩短或延长会话的生命周期.我知道如何实现这一点,我的PHP脚本如下所示:
ini_set('session.gc_maxlifetime', 3600);
session_set_cookie_params(3600);
session_start();
Run Code Online (Sandbox Code Playgroud)
这会使我的会话在3600秒后超时.这基本上就是这样,当我最初打开一个我必须登录的网站时,我可以使用它一个小时,然后所有会话数据都被删除,我需要再次登录.
但是,这不是我期望的行为.我希望我的会话在一小时不活动后超时.因此,当我第一次在上午10:00打开我的网站时,要做到10点45分之前的事情,那么它应该在11:45超时,而不是像现在这样在11点.
任何建议如何实现这一目标?
我正在尝试在asp.netcore 2.0 MVC应用程序中使用带有cookie身份验证的身份.我想将会话超时设置为150天,因此登录的用户不需要在很长一段时间内再次登录.我设置options.ExpireTimeSpan = TimeSpan.FromDays(150);但会话在几分钟后关闭,即使用户正在积极使用该应用程序.
我正在关注官方文档,我在Startup.cs上有这个:
在ConfigureServices方法:
services.AddIdentity<User, Role>()
.AddDefaultTokenProviders();
// Identity Services
services.AddTransient<IUserStore<User>, UserService>();
services.AddTransient<IRoleStore<Role>, RoleService>();
services.Configure<IdentityOptions>(options =>
{
// Password settings
options.Password.RequireDigit = false;
options.Password.RequiredLength = 8;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
options.Password.RequireLowercase = false;
options.Password.RequiredUniqueChars = 3;
// Lockout settings
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(30);
options.Lockout.MaxFailedAccessAttempts = 10;
options.Lockout.AllowedForNewUsers = true;
// User settings
options.User.RequireUniqueEmail = true;
});
services.ConfigureApplicationCookie(options =>
{
// Cookie settings
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromDays(150);
options.LoginPath = "/User/Login";
options.LogoutPath …Run Code Online (Sandbox Code Playgroud) session-timeout asp.net-identity asp.net-core-2.0 cookie-authentication
session-timeout ×10
jsf ×2
php ×2
session ×2
ajax ×1
asp.net-mvc ×1
csrf ×1
express ×1
file-upload ×1
java ×1
jquery ×1
node.js ×1
passport.js ×1
primefaces ×1
redirect ×1
servlets ×1