java 单点登录实例

java 单点登录实例

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

class User {
private String username;
private String password;

public User(String username, String password) {
    this.username = username;
    this.password = password;
}

public String getUsername() {
    return username;
}

public String getPassword() {
    return password;
}

}

class TokenService {
private static final Map<String, String> userTokenMap = new HashMap<>();

public static String generateToken(String username) {
    String token = UUID.randomUUID().toString();
    userTokenMap.put(token, username);
    return token;
}

public static boolean isValidToken(String token) {
    return userTokenMap.containsKey(token);
}

public static String getUsername(String token) {
    return userTokenMap.get(token);
}

}

class AuthenticationService {
private static final Map<String, User> users = new HashMap<>();

public static void registerUser(String username, String password) {
    users.put(username, new User(username, password));
}

public static boolean authenticate(String username, String password) {
    User user = users.get(username);
    return user != null && user.getPassword().equals(password);
}

}

public class SsoExample {
public static void main(String[] args) {
// 注册用户
AuthenticationService.registerUser(“user1”, “password1”);
AuthenticationService.registerUser(“user2”, “password2”);

    // 模拟用户登录请求
    String username = "user1";
    String password = "password1";

    // 验证用户身份
    if (AuthenticationService.authenticate(username, password)) {
        // 生成Token
        String token = TokenService.generateToken(username);
        System.out.println("User logged in. Token: " + token);

        // 模拟其他系统的验证过程
        if (TokenService.isValidToken(token)) {
            System.out.println("Token is valid. User: " + TokenService.getUsername(token));
        } else {
            System.out.println("Invalid token.");
        }
    } else {
        System.out.println("Invalid credentials.");
    }
}

}
在这个例子中,我们模拟了用户注册、用户身份验证和Token的生成与验证过程。用户通过提供用户名和密码进行身份验证。如果身份验证成功,则生成一个Token并返回给用户。其他系统可以通过验证Token来确认用户身份,而不需要再次验证用户名和密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒目目

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值