关于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</> groupId>com.baomidouartifactId>kisso_springbootversion>0.0.1-SNAPSHOTpackaging>jarnameurl>http://maven.apache.orgparent> >org.springframework.boot>spring-boot-starter-parent>1.5.6.RELEASEdependenciesdependency> >spring-boot-starter-web>kisso>3.7.0> project>
二、编写启动类
package com.baomidou.kisso; import org.slf4j.Logger; org.slf4j.LoggerFactory; org.springframework.boot.SpringApplication; org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { private static final Logger logger = LoggerFactory.getLogger(Application.); /** * <p> * 1、启动执行<br> * 2、访问 http://localhost:8080/token 提示登录<br> * 3、登录 访问 :8080/login 成功再去 2 步骤查看<br> * </p> * <p> * 退出登录::8080/logout * </p> */ void main(String[] args) { SpringApplication application = new SpringApplication(Application.); application.run(args); logger.info("kisso start!"); } }
三、编写Controller
javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; org.springframework.beans.factory.annotation.Autowired; org.springframework.stereotype.Controller; org.springframework.web.bind.annotation.RequestMapping; org.springframework.web.bind.annotation.ResponseBody; com.baomidou.kisso.security.token.SSOToken; @Controller SampleController { @Autowired protected HttpServletRequest request; @Autowired HttpServletResponse response; @ResponseBody @RequestMapping("/") public String home() { return "Hello Kisso!"; } // 授权登录 @ResponseBody @RequestMapping("/login" String login() { 设置登录 COOKIE SSOHelper.setCookie(request,response,SSOToken.create().setIp(request).setId(1000).setIssuer("kisso"),false); return "login success!" 查看登录信息 @ResponseBody @RequestMapping("/token" 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" String logout() { SSOHelper.clearLogin(request,response); return "logout Kisso!"; } }
四、编写WebConfig类
org.springframework.context.annotation.Configuration; org.springframework.web.bind.annotation.ControllerAdvice; org.springframework.web.servlet.config.annotation.InterceptorRegistry; org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; com.baomidou.kisso.web.interceptor.SSOSpringInterceptor; @ControllerAdvice @Configuration class WebConfig extends WebMvcConfigurerAdapter { @Override 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. 退出