關於kisso介紹,大家可以參考官方文檔或者是我的博客:https://www.cnblogs.com/youcong/p/9794735.html
一、導入maven依賴
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.baomidou</groupId> <artifactId>kisso_springboot</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>kisso_springboot</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>kisso</artifactId> <version>3.7.0</version> </dependency> </dependencies> </project>
二、編寫啟動類
package com.baomidou.kisso; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { private static final Logger logger = LoggerFactory.getLogger(Application.class); /** * <p> * 1、啟動執行<br> * 2、訪問 http://localhost:8080/token 提示登錄<br> * 3、登錄 訪問 http://localhost:8080/login 成功再去 2 步驟查看<br> * </p> * <p> * 退出登錄:http://localhost:8080/logout * </p> */ public static void main(String[] args) { SpringApplication application = new SpringApplication(Application.class); application.run(args); logger.info("kisso start!"); } }
三、編寫Controller
package com.baomidou.kisso; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.baomidou.kisso.security.token.SSOToken; @Controller public class SampleController { @Autowired protected HttpServletRequest request; @Autowired protected HttpServletResponse response; @ResponseBody @RequestMapping("/") public String home() { return "Hello Kisso!"; } // 授權登錄 @ResponseBody @RequestMapping("/login") public String login() { // 設置登錄 COOKIE SSOHelper.setCookie(request, response, SSOToken.create().setIp(request).setId(1000).setIssuer("kisso"), false); return "login success!"; } // 查看登錄信息 @ResponseBody @RequestMapping("/token") public String token() { String msg = "暫未登錄"; SSOToken ssoToken = SSOHelper.attrToken(request); if (null != ssoToken) { msg = "登錄信息 ip=" + ssoToken.getIp(); msg += ", id=" + ssoToken.getId(); msg += ", issuer=" + ssoToken.getIssuer(); } return msg; } // 退出登錄 @ResponseBody @RequestMapping("/logout") public String logout() { SSOHelper.clearLogin(request, response); return "Logout Kisso!"; } }
四、編寫WebConfig類
package com.baomidou.kisso; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import com.baomidou.kisso.web.interceptor.SSOSpringInterceptor; @ControllerAdvice @Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { // kisso 攔截器配置 registry.addInterceptor(new SSOSpringInterceptor()).addPathPatterns("/**").excludePathPatterns("/login"); } }
五、編寫application.yml配置文件
server:
port: 8080
# 單點信息配置,全部可無
kisso:
config:
signkey: C691d971EJ3H376G81 # 對稱簽名密鑰
cookieName: kisso # COOKIE 名稱
六、啟動項目並測試
按照如下流程測試:
1.未登陸時直接訪問
2.登陸
3.登陸后直接訪問
4. 退出