springboot中怎么利用vue实现sso单点登录
创始人
2024-12-21 18:43:07
0次

开发工具:idea, maven3静态文件下载地址

1.pom文件:

4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.2.RELEASE com.xicheng ssodemo 0.0.1-SNAPSHOT ssodemo Demo project for Spring Boot 1.8  org.springframework.boot  spring-boot-starter-web  org.springframework.boot  spring-boot-starter-thymeleaf  org.springframework.boot  spring-boot-starter-test  test    org.springframework.boot  spring-boot-maven-plugin  

2.MVC页面跳转配置类,如果请求直接跳转页面,采用该配置可以减少controller中代码的编写

package com.xicheng.ssodemo.common;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/** * @author xichengxml * @date 2019/2/13 16:56 */@Configurationpublic class SpringMvcConfig implements WebMvcConfigurer {  @Override  public void addViewControllers(ViewControllerRegistry registry) {    registry.addViewController("login").setViewName("login");    registry.addViewController("success").setViewName("success");    registry.addViewController("error").setViewName("error");  }}

3.核心校验类编写

package com.xicheng.ssodemo.common;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;/** * @author xichengxml * @date 2019/2/13 16:19 * 登录校验工具类 */public class LoginCheck {  /** 用户名 */  private static final String USERNAME = "uname";  /** 密码 */  private static final String PASSWORD = "pwd";  /** cookie键 */  public static final String COOKIE_KEY = "sso";  /** cookie值 */  public static final String COOKIE_VAL = "ssocookie";  /**   * 校验用户名和密码   * @param userName 登录用户名   * @param password 登录密码   * @return 成功返回true; 失败返回false   */  public static boolean checkLogin(String userName, String password) {    return USERNAME.equals(userName) && PASSWORD.equals(password);  }  /**   * 校验cookie   * @param request   * @return   */  public static boolean checkCookie(HttpServletRequest request) {    Cookie[] cookies = request.getCookies();    if (cookies != null && cookies.length != 0) {      for (Cookie cookie : cookies) {        if (COOKIE_KEY.equals(cookie.getName()) && COOKIE_VAL.equals(cookie.getValue())) {          return true;        }      }    }    return false;  }}

4.核心登录controller编写

package com.xicheng.ssodemo.controller;import com.xicheng.ssodemo.common.LoginCheck;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletResponse;/** * @author xichengxml * @date 2019/2/13 16:31 */@Controllerpublic class LoginController {  /**   * 登录成功后保存cookie在域下,返回登录成功页   * @param uname   * @param pwd   * @param response   * @return   */  @RequestMapping("/do-login")  public String doLogin(String uname, String pwd, HttpServletResponse response) {    if (LoginCheck.checkLogin(uname, pwd)) {      Cookie cookie = new Cookie(LoginCheck.COOKIE_KEY, LoginCheck.COOKIE_VAL);      cookie.setPath("/");      response.addCookie(cookie);      return "success";    }    return "error";  }}

5.登录controller编写

package com.xicheng.ssodemo.controller;import com.xicheng.ssodemo.common.LoginCheck;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;/** * @author xichengxml * @date 2019/2/13 17:53 */@Controllerpublic class SameOriginController {  /**   * cookie存在,登录成功;否则返回登录页   * @param request   * @return   */  @RequestMapping("/login01")  public String demo01(HttpServletRequest request) {    return LoginCheck.checkCookie(request) ? "success" : "login";  }  @RequestMapping("/login02")  public String demo02(HttpServletRequest request) {    return LoginCheck.checkCookie(request) ? "success" : "login";  }}

6.登录页面及成功失败页面编写

   登录          

           登录  

 

   成功页面  This is success page!

   错误页面  This is error page!

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...