ApiAppSecretManager.java 1.62 KB
package com.xiniunet.open.manager;

import com.xiniunet.apiframework.security.AppSecretManager;
import com.xiniunet.framework.security.Passport;
import com.xiniunet.master.domain.system.Product;
import com.xiniunet.master.request.system.SysProductFindRequest;
import com.xiniunet.master.service.MasterService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ApiAppSecretManager implements AppSecretManager {
    @Autowired
    private MasterService masterService;
    private Map<String, String> appKeySecretMap = new ConcurrentHashMap<>();

    {
        // 来源自POS工程
        appKeySecretMap.put("0617CA8376F9901F28FF46B69BF9CF44","28570C9D069ED51226DD9F028BD5E6DD");
    }

    public String getSecret(String appKey) {
        return appKeySecretMap.get(appKey);
    }

    public boolean isValidAppKey(String appKey) {
        if(appKeySecretMap.containsKey(appKey)){
            return true;
        }
        SysProductFindRequest sysProductFindRequest = new SysProductFindRequest();
        sysProductFindRequest.setKey(appKey);
        List<Product> productList = masterService.findSysProduct(sysProductFindRequest,new Passport()).getResult();

        Product product = null;
        if(productList.size() == 1){
            product = productList.get(0);
        }
        if(product!=null){
            appKeySecretMap.put(product.getAppKey(),product.getAppSecret());
            return true;
        }else{
            return false;
        }
    }
	@Override
	public boolean isNormal(String arg0) {
		return true;
	}

}