parent
9e71918466
commit
ba82c51021
13 changed files with 278 additions and 141 deletions
@ -1,120 +0,0 @@ |
|||||||
package org.fengfei.lanproxy.common; |
|
||||||
|
|
||||||
import java.io.IOException; |
|
||||||
import java.io.InputStream; |
|
||||||
import java.util.Map; |
|
||||||
import java.util.Properties; |
|
||||||
import java.util.concurrent.ConcurrentHashMap; |
|
||||||
|
|
||||||
/** |
|
||||||
* 读取配置文件 默认的config.properties 和自定义都支持 |
|
||||||
* |
|
||||||
*/ |
|
||||||
public class Config { |
|
||||||
|
|
||||||
private static final String DEFAULT_CONF = "config.properties"; |
|
||||||
|
|
||||||
private static Map<String, Config> instances = new ConcurrentHashMap<String, Config>(); |
|
||||||
|
|
||||||
private Properties configuration = new Properties(); |
|
||||||
|
|
||||||
private Config() { |
|
||||||
initConfig(DEFAULT_CONF); |
|
||||||
} |
|
||||||
|
|
||||||
private Config(String configFile) { |
|
||||||
initConfig(configFile); |
|
||||||
} |
|
||||||
|
|
||||||
private void initConfig(String configFile) { |
|
||||||
InputStream is = Config.class.getClassLoader().getResourceAsStream(configFile); |
|
||||||
try { |
|
||||||
configuration.load(is); |
|
||||||
is.close(); |
|
||||||
} catch (IOException ex) { |
|
||||||
throw new RuntimeException(ex); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获得Configuration实例。 默认为config.property |
|
||||||
* |
|
||||||
* @return Configuration实例 |
|
||||||
*/ |
|
||||||
public static Config getInstance() { |
|
||||||
return getInstance(DEFAULT_CONF); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 自定义文件解析**.property |
|
||||||
* |
|
||||||
* @param configFile |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public static Config getInstance(String configFile) { |
|
||||||
Config config = instances.get(configFile); |
|
||||||
if (config == null) { |
|
||||||
synchronized (instances) { |
|
||||||
config = instances.get(configFile); |
|
||||||
if (config == null) { |
|
||||||
config = new Config(configFile); |
|
||||||
instances.put(configFile, config); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
return config; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获得配置项。 |
|
||||||
* |
|
||||||
* @param key 配置关键字 |
|
||||||
* |
|
||||||
* @return 配置项 |
|
||||||
*/ |
|
||||||
public String getStringValue(String key) { |
|
||||||
return configuration.getProperty(key); |
|
||||||
} |
|
||||||
|
|
||||||
public String getStringValue(String key, String defaultValue) { |
|
||||||
String value = this.getStringValue(key); |
|
||||||
if (value == null) { |
|
||||||
return defaultValue; |
|
||||||
} else { |
|
||||||
return value; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
public int getIntValue(String key, int defaultValue) { |
|
||||||
return LangUtil.parseInt(configuration.getProperty(key), defaultValue); |
|
||||||
} |
|
||||||
|
|
||||||
public int getIntValue(String key) { |
|
||||||
return LangUtil.parseInt(configuration.getProperty(key)); |
|
||||||
} |
|
||||||
|
|
||||||
public double getDoubleValue(String key, Double defaultValue) { |
|
||||||
return LangUtil.parseDouble(configuration.getProperty(key), defaultValue); |
|
||||||
} |
|
||||||
|
|
||||||
public double getDoubleValue(String key) { |
|
||||||
return LangUtil.parseDouble(configuration.getProperty(key)); |
|
||||||
} |
|
||||||
|
|
||||||
public double getLongValue(String key, Long defaultValue) { |
|
||||||
return LangUtil.parseLong(configuration.getProperty(key), defaultValue); |
|
||||||
} |
|
||||||
|
|
||||||
public double getLongValue(String key) { |
|
||||||
return LangUtil.parseLong(configuration.getProperty(key)); |
|
||||||
} |
|
||||||
|
|
||||||
public Boolean getBooleanValue(String key, Boolean defaultValue) { |
|
||||||
return LangUtil.parseBoolean(configuration.getProperty(key), defaultValue); |
|
||||||
} |
|
||||||
|
|
||||||
public Boolean getBooleanValue(String key) { |
|
||||||
return LangUtil.parseBoolean(configuration.getProperty(key)); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,28 @@ |
|||||||
|
package org.fengfei.lanproxy.server.config.yml; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Description TODO |
||||||
|
* @Author qi |
||||||
|
**/ |
||||||
|
public class Admin { |
||||||
|
|
||||||
|
private String username; |
||||||
|
|
||||||
|
private String password; |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
|
||||||
|
public String getPassword() { |
||||||
|
return password; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPassword(String password) { |
||||||
|
this.password = password; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
package org.fengfei.lanproxy.server.config.yml; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Description TODO |
||||||
|
* @Author qi |
||||||
|
**/ |
||||||
|
public class Config { |
||||||
|
|
||||||
|
private Admin admin; |
||||||
|
|
||||||
|
private ConfigServer server; |
||||||
|
|
||||||
|
public Admin getAdmin() { |
||||||
|
return admin; |
||||||
|
} |
||||||
|
|
||||||
|
public void setAdmin(Admin admin) { |
||||||
|
this.admin = admin; |
||||||
|
} |
||||||
|
|
||||||
|
public ConfigServer getServer() { |
||||||
|
return server; |
||||||
|
} |
||||||
|
|
||||||
|
public void setServer(ConfigServer server) { |
||||||
|
this.server = server; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
package org.fengfei.lanproxy.server.config.yml; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Description TODO |
||||||
|
* @Author qi |
||||||
|
**/ |
||||||
|
public class ConfigServer { |
||||||
|
/** |
||||||
|
* 绑定IP |
||||||
|
*/ |
||||||
|
private String bind; |
||||||
|
/** |
||||||
|
* 端口号 |
||||||
|
*/ |
||||||
|
private int port; |
||||||
|
|
||||||
|
public String getBind() { |
||||||
|
return bind; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBind(String bind) { |
||||||
|
this.bind = bind; |
||||||
|
} |
||||||
|
|
||||||
|
public int getPort() { |
||||||
|
return port; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPort(int port) { |
||||||
|
this.port = port; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
package org.fengfei.lanproxy.server.config.yml; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Description TODO |
||||||
|
* @Author qi |
||||||
|
**/ |
||||||
|
public class Server { |
||||||
|
|
||||||
|
private String bind; |
||||||
|
|
||||||
|
private int port; |
||||||
|
|
||||||
|
private Ssl ssl; |
||||||
|
|
||||||
|
public String getBind() { |
||||||
|
return bind; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBind(String bind) { |
||||||
|
this.bind = bind; |
||||||
|
} |
||||||
|
|
||||||
|
public int getPort() { |
||||||
|
return port; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPort(int port) { |
||||||
|
this.port = port; |
||||||
|
} |
||||||
|
|
||||||
|
public Ssl getSsl() { |
||||||
|
return ssl; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSsl(Ssl ssl) { |
||||||
|
this.ssl = ssl; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,51 @@ |
|||||||
|
package org.fengfei.lanproxy.server.config.yml; |
||||||
|
|
||||||
|
import org.yaml.snakeyaml.Yaml; |
||||||
|
|
||||||
|
import java.io.InputStream; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Description |
||||||
|
* @Author qi |
||||||
|
**/ |
||||||
|
public class ServerConfig { |
||||||
|
|
||||||
|
public static final String SERVER_YML_PATH = "/config.yml"; |
||||||
|
|
||||||
|
private Server server; |
||||||
|
|
||||||
|
private Config config; |
||||||
|
|
||||||
|
public Server getServer() { |
||||||
|
return server; |
||||||
|
} |
||||||
|
|
||||||
|
public void setServer(Server server) { |
||||||
|
this.server = server; |
||||||
|
} |
||||||
|
|
||||||
|
public Config getConfig() { |
||||||
|
return config; |
||||||
|
} |
||||||
|
|
||||||
|
public void setConfig(Config config) { |
||||||
|
this.config = config; |
||||||
|
} |
||||||
|
|
||||||
|
public static ServerConfig getInstance(String ymlPath){ |
||||||
|
InputStream inputStream = null; |
||||||
|
try { |
||||||
|
inputStream = ServerConfig.class.getResourceAsStream(ymlPath); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
Yaml yaml = new Yaml(); |
||||||
|
ServerConfig serverConfig = yaml.loadAs(inputStream, ServerConfig.class); |
||||||
|
return serverConfig; |
||||||
|
} |
||||||
|
|
||||||
|
public static ServerConfig getInstance(){ |
||||||
|
|
||||||
|
return getInstance(SERVER_YML_PATH); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,78 @@ |
|||||||
|
package org.fengfei.lanproxy.server.config.yml; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Description TODO |
||||||
|
* @Author qi |
||||||
|
**/ |
||||||
|
public class Ssl { |
||||||
|
|
||||||
|
private boolean enable; |
||||||
|
|
||||||
|
private String bind; |
||||||
|
|
||||||
|
private Integer port; |
||||||
|
|
||||||
|
private String jksPath; |
||||||
|
|
||||||
|
private String keyStorePassword; |
||||||
|
|
||||||
|
private String keyManagerPassword; |
||||||
|
|
||||||
|
private boolean needsClientAuth; |
||||||
|
|
||||||
|
public boolean isEnable() { |
||||||
|
return enable; |
||||||
|
} |
||||||
|
|
||||||
|
public void setEnable(boolean enable) { |
||||||
|
this.enable = enable; |
||||||
|
} |
||||||
|
|
||||||
|
public String getBind() { |
||||||
|
return bind; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBind(String bind) { |
||||||
|
this.bind = bind; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getPort() { |
||||||
|
return port; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPort(Integer port) { |
||||||
|
this.port = port; |
||||||
|
} |
||||||
|
|
||||||
|
public String getJksPath() { |
||||||
|
return jksPath; |
||||||
|
} |
||||||
|
|
||||||
|
public void setJksPath(String jksPath) { |
||||||
|
this.jksPath = jksPath; |
||||||
|
} |
||||||
|
|
||||||
|
public String getKeyStorePassword() { |
||||||
|
return keyStorePassword; |
||||||
|
} |
||||||
|
|
||||||
|
public void setKeyStorePassword(String keyStorePassword) { |
||||||
|
this.keyStorePassword = keyStorePassword; |
||||||
|
} |
||||||
|
|
||||||
|
public String getKeyManagerPassword() { |
||||||
|
return keyManagerPassword; |
||||||
|
} |
||||||
|
|
||||||
|
public void setKeyManagerPassword(String keyManagerPassword) { |
||||||
|
this.keyManagerPassword = keyManagerPassword; |
||||||
|
} |
||||||
|
|
||||||
|
public boolean isNeedsClientAuth() { |
||||||
|
return needsClientAuth; |
||||||
|
} |
||||||
|
|
||||||
|
public void setNeedsClientAuth(boolean needsClientAuth) { |
||||||
|
this.needsClientAuth = needsClientAuth; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue