kisso的简单使用

kisso的简单使用

官网

!!官网在此!!

安装

新建SpringBoot项目

此处不做详细介绍。

使用kisso

gradle添加依赖:

implementation("com.baomidou:kisso:3.8.1")

登录接口将 token 作为 Cookie :

@PostMapping("do-login")

public boolean doLogin(String username, String password, HttpServletRequest request, HttpServletResponse response) {

log.info("username is: {} and password is: {}", username, password);

if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {

throw new NullPointerException();

}

// 下面这两行代码是重点

SSOToken token = SSOToken.create().setId(0).setIssuer(username).setOrigin(TokenOrigin.COOKIE).setUserAgent(request);

SSOHelper.setCookie(request, response, token);

return true;

}

添加后,请求登录接口观察 Chrome DevTools 可以发现, Response Header 中出现了 Set-Cookie:

在 Application 的 Cookies 中也可以看到:

拦截请求

上面使用了 kisso 生成了 token 并设置 cookie,我们需要判断这个 token 是否合法,所以用到了 kisso 自带的拦截器 SSOSpringInterceptor,在配置类中增加拦截:

package com.example.kissodemo.config;

import com.baomidou.kisso.web.interceptor.SSOSpringInterceptor;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**

* @author zhaokai

* @since 2022-06-17

*/

@Configuration

public class WebConfig implements WebMvcConfigurer {

@Override

public void addInterceptors(InterceptorRegistry registry) {

SSOSpringInterceptor ssoSpringInterceptor = new SSOSpringInterceptor();

registry.addInterceptor(ssoSpringInterceptor).addPathPatterns("/**");

}

}

如果想要在登录失败时,自定义某些逻辑,可以自己实现 SSOHandlerInterceptor 接口:

package com.example.kissodemo.config;

import com.baomidou.kisso.web.handler.SSOHandlerInterceptor;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* @author zhaokai

* @since 2022-06-17

*/

public class MySSOHandlerInterceptor implements SSOHandlerInterceptor {

@Override

public boolean preTokenIsNullAjax(HttpServletRequest request, HttpServletResponse response) {

// 做一些其他的处理

return false;

}

@Override

public boolean preTokenIsNull(HttpServletRequest request, HttpServletResponse response) {

// 做一些其他的处理

return false;

}

}

然后在配置类中添加这个实现类就可以了:

最后

到此,一个非常简单的 kisso 使用的 demo 就完成了,其实 kisso 的功能远不止于此,后面文章中会总结一下更深层次的功能。

相关推荐

公众号开通需要钱吗 详细解析:注册流程、认证费用与其他潜在成本
《看门狗2》与《GTA 5》对比 两者究竟有何不同?
o365邮箱登录

《看门狗2》与《GTA 5》对比 两者究竟有何不同?

📅 07-12 👁️ 4655
意外!2026世界杯冠军概率提前出炉,两热门并列,阿根廷跌出前四
山田优自曝与小栗旬婚姻生活日常 经常深夜吵架
365bet体育在线15

山田优自曝与小栗旬婚姻生活日常 经常深夜吵架

📅 06-30 👁️ 5965
网络安全小技巧之二 安全上网指南,你一定用得到
娜字康熙字典多少画
o365邮箱登录

娜字康熙字典多少画

📅 08-30 👁️ 7874