package com.dobbinsoft.fw.launcher.permission; import com.alibaba.fastjson.JSONObject; import com.dobbinsoft.fw.core.Const; import com.dobbinsoft.fw.core.entiy.inter.PermissionOwner; import com.dobbinsoft.fw.core.util.ISessionUtil; import com.dobbinsoft.fw.support.properties.FwSystemProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import java.util.concurrent.TimeUnit; @Component public class ClusterAdminAuthenticator implements IAdminAuthenticator { @Autowired private StringRedisTemplate userRedisTemplate; @Autowired private ISessionUtil sessionUtil; @Autowired private FwSystemProperties fwSystemProperties; @Override public PermissionOwner getAdmin(String accessToken) { if (!StringUtils.isEmpty(accessToken)) { String userJson = userRedisTemplate.opsForValue().get(Const.ADMIN_REDIS_PREFIX + accessToken); if (!StringUtils.isEmpty(userJson)) { PermissionOwner adminDTO = (PermissionOwner) JSONObject.parseObject(userJson, sessionUtil.getAdminClass()); sessionUtil.setAdmin(adminDTO); userRedisTemplate.expire(Const.ADMIN_REDIS_PREFIX + accessToken, fwSystemProperties.getAdminSessionPeriod(), TimeUnit.MINUTES); return adminDTO; } } return null; } }