app_key和secret存放在数据库或redis中
这里以redis为例
新建一个RedisAppSecretManager类实现AppSecretManager接口
/**
* 使用方式:
*
* <pre>
@Autowired
private AppSecretManager appSecretManager;
@Override
protected void initApiConfig(ApiConfig apiConfig) {
...
apiConfig.setAppSecretManager(appSecretManager);
...
}
* </pre>
*
* @author tanghc
*
*/
@Component
public class RedisAppSecretManager implements AppSecretManager {
public static String APP_KEY_PREFIX = "easyopen_app_key:";
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Override
public void addAppSecret(Map<String, String> appSecretStore) {
stringRedisTemplate.opsForHash().putAll(APP_KEY_PREFIX, appSecretStore);
}
@Override
public String getSecret(String appKey) {
return (String)stringRedisTemplate.opsForHash().get(APP_KEY_PREFIX, appKey);
}
@Override
public boolean isValidAppKey(String appKey) {
if (appKey == null) {
return false;
}
return getSecret(appKey) != null;
}
}
存放app_key和secret采用hash set的方式,这样在redis中查看会比较方便,一目了然.
然后在IndexController中:
@Autowired
private AppSecretManager appSecretManager;
@Override
protected void initApiConfig(ApiConfig apiConfig) {
...
apiConfig.setAppSecretManager(appSecretManager);
...
}