首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在spring boot安全中会话超时后如何重定向到不同jsp页面(而不是重定向到登录页面)

在Spring Boot安全中,会话超时后可以通过配置来实现重定向到不同的JSP页面,而不是重定向到登录页面。下面是实现的步骤:

  1. 首先,确保你已经在Spring Boot项目中集成了Spring Security,可以通过添加以下依赖来实现:
代码语言:txt
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 在Spring Boot的配置文件(application.properties或application.yml)中,配置会话超时时间,例如:
代码语言:txt
复制
server.servlet.session.timeout: 30m

这里设置会话超时时间为30分钟。

  1. 创建一个自定义的SessionExpiredHandler类,实现SessionInformationExpiredEvent接口,用于处理会话超时事件。在该类中,可以通过重定向到不同的JSP页面来实现需求。示例代码如下:
代码语言:txt
复制
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.session.SessionInformationExpiredEvent;
import org.springframework.security.web.session.SessionInformationExpiredStrategy;
import org.springframework.stereotype.Component;

@Component
public class SessionExpiredHandler implements SessionInformationExpiredStrategy {

    @Override
    public void onExpiredSessionDetected(SessionInformationExpiredEvent event) throws IOException, ServletException {
        // 获取当前请求的URL
        String requestUrl = event.getRequest().getRequestURL().toString();
        
        // 根据不同的URL重定向到不同的JSP页面
        if (requestUrl.contains("/page1")) {
            event.getResponse().sendRedirect("/page1.jsp");
        } else if (requestUrl.contains("/page2")) {
            event.getResponse().sendRedirect("/page2.jsp");
        } else {
            event.getResponse().sendRedirect("/default.jsp");
        }
    }
}

在上述代码中,根据请求的URL来判断重定向到哪个JSP页面,可以根据实际需求进行修改。

  1. 在Spring Security的配置类中,将自定义的SessionExpiredHandler类配置为会话超时处理器。示例代码如下:
代码语言:txt
复制
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.session.SessionInformationExpiredStrategy;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private SessionInformationExpiredStrategy sessionExpiredHandler;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .and()
            .sessionManagement()
                .maximumSessions(1)
                .expiredSessionStrategy(sessionExpiredHandler);
    }
}

在上述代码中,通过sessionManagement().expiredSessionStrategy(sessionExpiredHandler)将自定义的会话超时处理器配置到Spring Security中。

通过以上步骤,当会话超时后,根据请求的URL会重定向到不同的JSP页面。请根据实际需求修改代码中的JSP页面路径和URL判断条件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Javaweb02-jsp

(request, response); //重定向登录页面 //重定向是客户端行为 response.sendRedirect("userLogin.jsp"); 5.2 跳转资源不同 转发访问的资源仅限于服务内部所有资源...,重定向不可以访问到; //使用转发,跳转到WEB-INF安全目录页面 可以 request.getRequestDispatcher("...../WEB-INF/OK.jsp").forward(request, response); //使用重定向跳转到WEB-INF安全目录页面 不可以 response.sendRedirect("....; 转发"/"代表的含义不同,转发是交给服务器处理,重定向是交给浏览器处理,代表站点; 转发转发会携带请求,不会重新发起请求,全程request对象只用一个;重定向每次都是浏览器发起的,都是一个新的请求...>10 // 注意:不是说session对象超时就是30分钟,如果在30分钟内有操作session对象,超时会顺延,只有没有操作到达

52730

单点登录与授权登录业务指南

每个系统通过验证这个令牌的有效性来为用户提供服务,不是通过传统的会话机制。这种方法RESTful API和微服务架构中非常流行。...用户被重定向登录页面:最后,SSO认证中心将用户重定向登录页面,表示注销过程已完成。 示例: 比如,Alice在她的工作地点使用了邮件系统(系统1)和内部论坛(系统2)。...访问客户端:浏览器访问客户端应用。由于客户端配置了OAuth2登录,您将被重定向sso-server进行认证。 登录重定向 sso-server 登录,您将被重定向回客户端应用。...业务流程,用户首先在客户端应用上发起登录或数据访问请求。 客户端应用将用户重定向服务提供者的授权页面,用户页面上进行登录并授权。...点击“Login with Google”链接,你将被重定向Google的登录页面登录,Google将重定向回你的应用,并且你可以访问受保护的用户信息。

69721

Spring Security的认证和授权

自定义登录页面 快速上手中,你可能会想知道登录页面从哪里来的?因为我们并没有提供任何的HTML或JSP文件。...Spring Security的默认配置没有明确设定一个登录页面的URL,因此Spring Security会根据启用的功能自动生成一个登录页面URL,并使用默认URL处理登录的提交内容,登录跳转的默认...快速上手工程security-spring-boot创建登录页面login.jsp,目录结构如下: 由于是SpringBoot项目中创建jsp文件,需项目属性配置web资源文件夹路径,这里指向我们刚刚创建的...");//指定登录成功的跳转URL,自定义登录成功的页面地址 } 测试:当用户没有认证时访问系统的资源会重定向login-view页面 输入账号和密码,点击登录,报错: 问题原因: spring...会话超时 可以再sevlet容器设置Session的超时时间,比如设置Session有效期为3600秒,修改spring boot配置文件: server.servlet.session.timeout

2.1K30

Shiro面试题(二十道)

或者细粒度的验证某个用户对某个资源是否具有某个权限; c、Session Manager:会话管理,即用户登录就是一次会话没有退出之前,它的所有信息都在会话会话可以是普通JavaSE环境的,也可以是如...Web环境的; d、Cryptography:加密,保护数据的安全性,如密码加密存储数据库,不是明文存储; e、Web Support:Web支持,可以非常容易的集成Web环境; f、Caching...; 2.如果没有登录,看看是否是登录请求,如果是get方法的登录页面请求,则继续拦截器链(请求页面),否则如果是get方法的其他页面请求则保存当前请求并重定向登录页面; 3.如果是post方法的登录页面表单提交请求...,则收集用户名/密码登录即可,如果失败了保存错误消息“shiroLoginFailure”并返回到登录页面; 4.如果登录成功了,且之前有保存的请求,则重定向之前的这个请求,否则默认的成功页面。...,适用于web及非web环境 5、非常简单的API加密 6、不跟任何框架绑定,可以独立运行 12、如何配置 Spring 配置使用 Shiro 1、 web.xml 配置 Shiro 的

1.3K20

Spring Security---ONE

session会话超时时间配置 会话超时处理 Spring Security的会话固化保护 Cookie的安全 同账号多端登录踢下线 跳转到指定页面 Json的友好数据提示 测试方法: cookie和session...未经身份验证的用户的默认行为是重定向登录页面(或适用于正在使用的身份验证机制的任何内容)。...Security如何创建与使用session,不是控制整个应用程序。...---- 会话超时管理 session会话超时时间配置 Spring boot应用中有两种设置会话超时时间的方式,Spring Security对这两种方式完全兼容,即:当会话超时之后用户需要重新登录才能访问应用...注意:Spring BootSession超时最短的时间是一分钟,当你的设置小于一分钟的时候,默认为一分钟。

1.8K10

Java Web 33道面试题

Get 是向服务器发索取数据的一种请求, Post 是向服务器提交数据的一种请求, FORM(表单),Method 默认为"GET",实质上,GET 和 POST 只是发送机制不同,并不是一个取一个发...jsp 的内置对象,是指Tomcat 翻译jsp 页面成为Servlet 源代码,内部提供的九大对象,叫内置对象。...setAttribute 是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存。...若以斜杠开头,说明它是一个环境相关的路径.将根据所指定URI的前缀进行解释, 若不是不是以斜杠开头,说明它是页面相关的路径,将根据当前页面路径进行解释. 19、JSP乱码如何解决?...Servlet 长轮询是一种机制,客户端请求发送,服务器会保持连接打开并等待响应,直到有数据可用或超时。 28、什么是异步 Servlet?

21020

【百面成神】java web基础7问,你能坚持第几问

不同: (1),存储位置与工作原理不同 cookie存储浏览器,其工作原理是,浏览器第一次发送请求服务端时,服务端会创建cookie,并将cookie返回给浏览器。...然后其它信息存储cookie里,保证安全同时尽量避免服务器冗余 3.Web容器的作用域 application:整个应用 对应servletServletContext 整个应用是指从应用启动,应用结束...我们没有说“从服务器启动,服务器关闭” session:会话    对应servletHttpSession 所谓当前会话,就是指从用户打开浏览器开始,用户关闭浏览器这中间的过程。...2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面; 3、性能监控:有时候系统某段时间莫名其妙的慢,可以通过拦截器进入处理器之前记录开始时间,处理完后记录结束时间,...(“/test.jsp”); 区别: 请求次数:重定向是浏览器向服务器发送一个请求并收到响应再次向一个新地址发出请求,转发是服务器收到请求后为了完成响应跳转到一个新的地址;重定向至少请求两次,转发请求一次

18130

一个诡异的登录问题

当我使用 HTTPS 登录成功,请求 https://localhost:8444/http 地址时,按理说会重定向 http://localhost:8080/http,结果并没有,而是重定向登录页面...如果使用了 HTTPS 协议登录登录成功,HTTPS 协议重定向 HTTP 协议时,需要重新登录,并且登录页面总是登录失败,需要清除浏览器缓存才能登录成功。...Spring Security 登录成功,会将用户信息保存在 SecurityContextHolder Spring Security ,我就想从子线程获取用户登录信息,怎么办?)...这个标记表示该 Cookie 只可以安全环境下(HTTPS)传输,如果请求是 HTTP 协议,则不会携带该 Cookie。这样就能解释通为什么登录成功重定向时不携带 Cookie 了。...:8080/http,重定向的请求是 HTTP 请求, Cookie 只可以 HTTPS 环境下传输,所以不会携带 Cookie,服务端以为这是一个匿名请求,所以要求重定向登录页面,回到登录页面继续登录

1.1K10

CAS单点登录系列之原理简单介绍

附录 一、 SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是多系统的环境登录单方系统,就可以不用再次登录的情况下访问相关受信任的系统...一种是基于Cookie的,这种比较常见,比如下文介绍的CAS也是基于Cookie的; 另外一种是基于Session的,其实理解起来就是会话共享,只有实现不同子系统之间的会话共享就能实现单点登录,详情可以参考我之前的博客...CAS Server和CAS Client,下面,我根据我的理解稍微解释一下: 1、用户访问CAS Client请求资源 2、客户端程序做了重定向重定向CAS Server 3、CAS Server...TGT失效的,访问时候也跳转到认证中心,发现没有TGT,说明没有通过认证,直接重定向登录页面,输入账号密码,再次重定向认证中心,验证通过后,生成ST,返回客户端保存到TGC 登录过的而且TGT没有失效的...jsp页面 可以注释WEB-INF\view\jsp\default\ui\casLoginView.jsp页面如下代码 <c:if test="${not pageContext.request.secure

64530

第十七章:使用SpringSecurity让SpringBoot项目更安全

早期的SpringSecurity版本我们需要大量的xml来进行配置,基于SpringBoot整合SpringSecurity框架相对而言简直是重生了,简单不可思议的地步。...图14 好了,下面我们简单的创建一个login.jsp页面页面里面添加一个简单的表单提交,我们的表单提交地址这里要注意了,SpringSecurity内部已经给我们定义好了,4.0版本之后登录地址都是...图18 正如我们所说的,当我们没有登录的状态下访问/index时,会直接被安全框架重定向登录页面,那么我们登录,再来访问/index并查看界面输出,如下图19所示: ?...角色判断 我们文章开始的部分已经创建了角色表,我们下面就要根据角色,在用户登录成功显示不同的内容,在这之前我们需要添加SpringSecurity为我们提供的JSTL标签库,我们可以根据标签库自行判断登录用户的角色...,需要我们退出用户再次登录方可生效。

1.7K40

shiro面试知识点总结_jmeter面试常见问题

spring mvc的dispatcherServlet前端控制器。...; 如果没有登录,看看是否是登录请求,如果是get方法的登录页面请求,则继续拦截器链(请求页面),否则如果是get方法的其他页面请求则保存当前请求并重定向登录页面; 如果是post方法的登录页面表单提交请求...,则收集用户名/密码登录即可,如果失败了保存错误消息“shiroLoginFailure”并返回到登录页面; 如果登录成功了,且之前有保存的请求,则重定向之前的这个请求,否则默认的成功页面。...任意角色授权拦截器 流程: 首先判断用户有没有任意角色,如果没有返回false,将到onAccessDenied进行处理; 如果用户没有角色,接着判断用户有没有登录,如果没有登录重定向登录; 如果用户没有角色且设置了未授权页面...(unauthorizedUrl),那么重定向未授权页面;否则直接返回401未授权错误码。

89830

知识汇总(二)

servlet 和 jsp 最主要的不同点在于,servlet 的应用逻辑是 java 文件,并且完全从表示层的 html 里分离开来, jsp 的情况是 java 和 html 可以组合成一个扩展名为...存储位置不同:session 存储服务器端;cookie 存储浏览器端。 安全不同:cookie 安全性一般,浏览器存储,可以被伪造和修改。...session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session 创建完之后,会把 session 的 id 发送给客户端,客户端再存储浏览器。...、重定向其他网站等。...get 请求会被浏览器主动缓存, post 不会。 get 传递参数有大小限制, post 没有。 post 参数传输更安全,get 的参数会明文限制 url 上,post 不会。

66110

springmvc 项目完整示例08 前台页面以及知识点总结

至此已经基本测试成功了,我们稍作完善,让它成为一个更加完整的项目 我们现在重新规划下逻辑 两个页面 一个登录页面 一个欢迎页面 登陆页面输入账号密码,登陆成功的话,跳转登陆成功 欢迎页面 并且,更新用户登录信息以及记录登录日志...; return "redirect:/login.do"; } } } 打开login展示登录页面 表单提交到checklogin 校验成功,执行登陆成功操作 失败重定向登录页面 注意此处的...; 是放到session的,如果只是request.setAttribute是不行的,页面读取不到 因为重定向了 相当于重新一个request,放进去的值就变化了 顺便记一下,这几个区别 session...,打开一个超链接也是一个请求,当请求结束这个request也就消亡了 当用户第一次和服务器建立连接时,服务器就会产生一个session直到用户离开或超时,比如关闭浏览器session也会销毁 或者说,你存储...:page 一次服务器请求范围内:request 一次会话范围内:session 一个应用服务器范围内:application Session对象主要用于保存用户的各种信息,直到它的生命周期超过或被人为释放掉为止

40900

CAS单点登录系列之原理简单介绍

附录 一、 SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是多系统的环境登录单方系统,就可以不用再次登录的情况下访问相关受信任的系统...一种是基于Cookie的,这种比较常见,比如下文介绍的CAS也是基于Cookie的; 另外一种是基于Session的,其实理解起来就是会话共享,只有实现不同子系统之间的会话共享就能实现单点登录,详情可以参考我之前的博客...CAS Server和CAS Client,下面,我根据我的理解稍微解释一下: 1、用户访问CAS Client请求资源 2、客户端程序做了重定向重定向CAS Server 3、CAS Server...TGT失效的,访问时候也跳转到认证中心,发现没有TGT,说明没有通过认证,直接重定向登录页面,输入账号密码,再次重定向认证中心,验证通过后,生成ST,返回客户端保存到TGC 登录过的而且TGT没有失效的...jsp页面 可以注释WEB-INF\view\jsp\default\ui\casLoginView.jsp页面如下代码 <c:if test="${not pageContext.request.secure

1.2K20

☀️苏州程序大白一文让你学会Java Servlet基础☀️《❤️记得收藏❤️》

URL 指定就是要跳转的页面(如果设置自己的路径,就会实现每过 5 秒自动刷新本页面一次) 8、Servlet 与线程安全 Servlet 不是线程安全的,多线程并发的读写会导致数据不同步的问题。...HttpServlet是先由源代码编译为class 文件后部署服务器下,为先编译后部署。 JSP 则是先部署编译。...setAttribute () 是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存。...③登录一次网站访问网站其他页面不需要重新登录。Session 的主要作用就是通过服务端记录用户的状态。...4、Cookie 存储客户端 Session 存储服务器上,相对来说 Session 安全性更高。

1.5K30

毕业设计答辩慌?不怕!软工本科 Java EE 毕设项目答辩问题、答案汇总指南!

session(HttpSession):即 HttpSession 类的对象,不是每个 JSP 页面中都可以使用,如果在某个 JSP 页面设置,说明这个页面不能使用...5.2、如何理解 Spring Boot 起步依赖的 starter 启动器? 问:如何理解 Spring Boot 起步依赖里面 starter 启动器?...请求的次数的不同重定向总共请求了两次服务器;转发则是用户请求一次可能经过n个jsp页面由返回到用户浏览器,是一次请求多次处理的过程。...跳转过程链接的变化,重定向跳转请求了两次服务器并且是两次不同的链接地址,浏览器的地址栏可以看到两次是有变化的;转发在跳转过程浏览器请求了一次服务器,服务器经过了n个jsp页面并没有改变请求的链接地址...目的不同重定向只是简单的让用户访问一个新的链接,转发是服务器要得到用户的请求内容并需要进行一部分处理的,所以两者目的之不同的。 7.12、表升级如何实现?如何维护?

4.3K50

计算机毕业设计答辩慌?软工本科 Java EE 毕设项目答辩问题、答案汇总指南奉上

session(HttpSession):即 HttpSession 类的对象,不是每个 JSP 页面中都可以使用,如果在某个 JSP 页面设置,说明这个页面不能使用...5.2、如何理解 Spring Boot 起步依赖的 starter 启动器? 问:如何理解 Spring Boot 起步依赖里面 starter 启动器?...请求的次数的不同重定向总共请求了两次服务器;转发则是用户请求一次可能经过n个jsp页面由返回到用户浏览器,是一次请求多次处理的过程。...跳转过程链接的变化,重定向跳转请求了两次服务器并且是两次不同的链接地址,浏览器的地址栏可以看到两次是有变化的;转发在跳转过程浏览器请求了一次服务器,服务器经过了 n 个 jsp 页面并没有改变请求的链接地址...目的不同重定向只是简单的让用户访问一个新的链接,转发是服务器要得到用户的请求内容并需要进行一部分处理的,所以两者目的之不同的。 7.12、表升级如何实现?如何维护?

2.1K20

Java 面试知识点解析(七)——Web篇

比如:从AServlet重定向BServlet ?...【不可以】访问 WEB-INF 的资源 6.请求转发【能】跨域访问 就像是在网页中点开了新的链接一样 总结:URL 重定向相当于是将重定向的资源路径,重新复制浏览器地址栏按下回车一样,重新发送一次新的请求...当访问一个 JSP 页面时,该页面请求将会讲给服务器JSP 引擎去处理,它负责解释和执行 JSP 页面,每个 JSP 页面第一次被访问时,JSP 引擎就会将它翻译成一个继承自 org.apache.jasper.runtime.HttpJspBase...可以理解为,JSP 是编译的 “Servlet 类”; JSP 由 HTML 代码和 JSP 标签组成,更擅长页面显示; Servlet 更擅长流程控制; JSP 感觉像是 HTML 嵌入 Java...应用环境 , 分布式系统存在全局 session 概念(单点登录),如果不是 porlet 环境,globalSession 等同于 Session 开发主要使用 scope="singleton

67720

单点登录落地实现技术有哪些,有哪些流行的登录方案搭配?

客户端登录时判断自己的session是否已登录,若未登录,则(告诉浏览器)重定向授权服务器 (参数带上自己的地址,用于回调) 3....授权服务器判断全局的session是否已登录,若未登录则定向登录页面,提示用户登录登录成 功,授权服务器重定向客户端(参数带上ticket【一个凭证号】) 4....OAuth2是用来允许用户授权第三方应用访问他另一个服务器上的资源的一种协议,它不是用来做单 点登录的,但我们可以利用它来实现单点登录。...第三方系统需要使用主系统的资源,第三方重定向授权系统 2. 根据不同的授权方式,授权系统提示用户授权 3....spring-boot-starter-springsecurity 特征 spring-security + oauth2 shiro + cas jwt 依赖 jdk、jwt、redis redis

3.3K10

Java 面试知识点解析(七)——Web篇

【不可以】访问 WEB-INF 的资源 6.请求转发【能】跨域访问 就像是在网页中点开了新的链接一样 总结:URL 重定向相当于是将重定向的资源路径,重新复制浏览器地址栏按下回车一样,重新发送一次新的请求...当访问一个 JSP 页面时,该页面请求将会讲给服务器JSP 引擎去处理,它负责解释和执行 JSP 页面,每个 JSP 页面第一次被访问时,JSP 引擎就会将它翻译成一个继承自 org.apache.jasper.runtime.HttpJspBase...可以理解为,JSP 是编译的 “Servlet 类”; JSP 由 HTML 代码和 JSP 标签组成,更擅长页面显示; Servlet 更擅长流程控制; JSP 感觉像是 HTML 嵌入 Java...[1240] Session 技术 Session:会话,从浏览器打开开始,直到浏览器关闭结束,无论在这个网站访问了多少页面,点击了多少链接,都属于同一个会话。...应用环境 , 分布式系统存在全局 session 概念(单点登录),如果不是 porlet 环境,globalSession 等同于 Session 开发主要使用 scope="singleton

1.1K140
领券