springBoot + KISSO实现单点登录
1:创建一个maven项目 kisso,然后再创建二个子项目都是springboot 2:二个boot项目的pom.xml都是一样的
就这三个依赖,
3:接下来就是码代码了,首先在(在我这里)springboot_kisso项目中的配置文件,内容如下
没错 就这几行,然后创建二个类
SampleController我就直接复制上来了
@Controller public class SampleController {
@Autowired
protected HttpServletRequest request;
@Resource
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!";
}
spirngboot_kisso项目配置就结束了
这里你也可以试试启动这一个项目,kisso_1项目暂时还不用编写
启动项目之后,我这里端口是8080, 浏览器访问 localhost:8080/token就会出现如下界面
复制代码
这里提示需要你登录 然后你打开另外一个浏览器窗口访问 localhost:8080/login
就会显示登录成功,然后再返回到访问 localhost:8080/token的界面,刷新
就会显示登录成功了
接下来创建springboot项目kisso_1,pom.xml和springboot_kisso是一样的,配置文件
其实也就是改了下端口,项目结构如下
除了启动类之外有二个类 WebConfig.class和spingboot_kisso的WebConfig.class是一样的,复制过来就行,然后在BaseController类里面写个方法
全部代码就这样
然后启动二个项目
首先访问 kisso_1中的index方法 建议先清除一下浏览器缓存
然后访问springboot_kisso的login方法 localhost:8080/login 显示登录成功 然后再返回刷新刚刚访问index页面
码云上给的就是一个boot项目,但是现在需要登录返回的是一个json字符串,工作当中应该返回登录页面,本小白自己试验了二个项目间的SSO,不喜勿喷