java实现CAS单点登录代码
时间: 2023-05-16 20:05:15 浏览: 285
以下是一个简单的 Java CAS 单点登录的实现代码:
```
import java.util.HashMap;
import java.util.Map;
public class CASLogin {
private static Map<String, String> userMap = new HashMap<>();
public static void main(String[] args) {
// 初始化用户信息
userMap.put("user1", "password1");
userMap.put("user2", "password2");
userMap.put("user3", "password3");
// 模拟用户登录
String username = "user1";
String password = "password1";
String ticket = login(username, password);
// 模拟服务端验证 ticket
boolean isValid = validateTicket(ticket);
System.out.println("ticket is valid: " + isValid);
}
// 模拟用户登录,返回 ticket
public static String login(String username, String password) {
String ticket = null;
if (userMap.containsKey(username) && userMap.get(username).equals(password)) {
// 生成 ticket
ticket = generateTicket(username);
}
return ticket;
}
// 生成 ticket
private static String generateTicket(String username) {
return "TICKET-" + username + "-" + System.currentTimeMillis();
}
// 模拟服务端验证 ticket
public static boolean validateTicket(String ticket) {
if (ticket == null || !ticket.startsWith("TICKET-")) {
return false;
}
String[] parts = ticket.split("-");
if (parts.length != 3) {
return false;
}
String username = parts[1];
// 模拟服务端从数据库中查询用户信息
return userMap.containsKey(username);
}
}
```
这个实现使用了一个简单的 Map 存储用户信息,模拟了用户登录和服务端验证 ticket 的过程。在实际应用中,需要根据实际情况进行修改和完善。