
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