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