帮我写一个java的SSO单点登录
时间: 2023-01-15 07:23:45 浏览: 88
好的,那么关于单点登录,我们需要先了解什么是单点登录(Single Sign-On,简称 SSO)。
单点登录是一种身份认证机制,它允许用户只需要登录一次就能访问多个应用系统或网站。这样,用户就可以在不同的应用系统或网站之间无缝地切换,而不用再次输入用户名和密码。
下面是一个简单的 Java 代码示例,它演示了如何实现单点登录:
```
// 假设已经有一个用户信息表 user,并且已经有了 JDBC 连接
// 根据用户名和密码查询用户信息
String sql = "SELECT * FROM user WHERE username = ? AND password = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
// 如果查询到了用户信息,则登录成功
if (rs.next()) {
// 创建一个 Token 对象,包含用户信息和登录时间
Token token = new Token();
token.setUserId(rs.getInt("id"));
token.setUsername(rs.getString("username"));
token.setLoginTime(new Date());
// 将 Token 对象序列化为字符串
String tokenString = serialize(token);
// 将 Token 字符串保存到 Cookie 中
Cookie cookie = new Cookie("token", tokenString);
cookie.setPath("/");
response.addCookie(cookie);
// 跳转到登录后的首页
response.sendRedirect("/home");