All Downloads are FREE. Search and download functionalities are using the official Maven repository.

studio.wetrack.web.auth.service.impl.TokenInMemoryStorageService Maven / Gradle / Ivy

package studio.wetrack.web.auth.service.impl;


import studio.wetrack.web.auth.domain.Token;
import studio.wetrack.web.auth.service.TokenStorageService;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * Created by zhanghong on 15/11/21.
 * 仅在内存中保存,每次重启,token都会失效。
 * 适合在开发阶段调试使用
 */
public class TokenInMemoryStorageService implements TokenStorageService {

    private Map tokenKeyMap;
    private Map> userIdKeyMap;

    public TokenInMemoryStorageService(){
        this.tokenKeyMap = new HashMap();
        this.userIdKeyMap = new HashMap>();
    }



    @Override
    public boolean addToken(Token token){
        tokenKeyMap.put(token.getToken(), token);
        Map userTokenMap = userIdKeyMap.get(token.getUser().getId());
        if(userTokenMap == null){
            userTokenMap = new HashMap();
            userIdKeyMap.put(token.getUser().getId(), userTokenMap);
        }
        userTokenMap.put(token.getToken(), token);
        return true;
    }

    @Override
    public boolean updateToken(Token token) {
        return true;
    }

    @Override
    public Token removeByTokenString(String tokenString){
        Token token = tokenKeyMap.get(tokenString);
        tokenKeyMap.remove(tokenString);
        if(token != null) {
            Map userTokenMap = userIdKeyMap.get(token.getUser().getId());
            if(userTokenMap != null){
                userTokenMap.remove(tokenString);
            }
        }
        return token;
    }

    @Override
    public Token findByTokenString(String tokenString){
        return  tokenKeyMap.get(tokenString);
    }

    @Override
    public Collection findAllByUserId(String userId){
        Map userTokenMap = userIdKeyMap.get(userId);
        if(userTokenMap != null){
            return userTokenMap.values();
        }

        return null;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy