本文实例为大家分享了springboot vue实现sso单点登录的具体代码,供大家参考,具体内容如下
项目结构:
开发工具:idea, maven3
静态文件下载地址
1.pom文件:
4.0.0 org.springframework.boot spring-boot-starter-parent2.1.2.RELEASE com.xicheng ssodemo0.0.1-SNAPSHOT ssodemo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-thymeleaforg.springframework.boot spring-boot-starter-testtest 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;
@Configuration
public 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;
public class LoginCheck {
private static final String USERNAME = "uname";
private static final String PASSWORD = "pwd";
public static final String cookie_KEY = "sso";
public static final String cookie_VAL = "ssocookie";
public static boolean checkLogin(String userName, String password) {
return USERNAME.equals(userName) && PASSWORD.equals(password);
}
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;
@Controller
public class LoginController {
@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;
@Controller
public class SameOriginController {
@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!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



