java propertiesutil_Java PropertiesUtil.getProperty方法代码示例

本文展示了如何使用Java的PropertiesUtil类来获取配置属性,特别是在构造Jetty服务器时,涉及到HTTPS配置、SSL上下文以及客户端认证的相关设置。PropertiesUtil.getProperty方法用于从配置文件中读取关键参数,如密钥库路径、密码等。

import org.bubblecloud.ilves.util.PropertiesUtil; //导入方法依赖的package包/类

/**

* Constructs Jetty server.

* @param httpPort the HTTP port

* @param httpsPort the HTTPS port

* @param requestClientAuthentication true if client authentication is to be requested

* @param requireClientAuthentication true if client authentication is required

* @return the Jetty server

* @throws IOException if SSL context factory creation fails.

*/

public static Server newServer(

final int httpPort,

final int httpsPort,

final boolean requestClientAuthentication,

final boolean requireClientAuthentication) throws IOException {

UserClientCertificateCache.init(DefaultSiteUI.getEntityManagerFactory());

final String keyStorePath = PropertiesUtil.getProperty("site", "key-store-path");

final String keyStorePassword = PropertiesUtil.getProperty("site", "key-store-password");

final String certificateAlias = PropertiesUtil.getProperty("site", "server-certificate-entry-alias");

final String certificatePassword = PropertiesUtil.getProperty("site", "server-certificate-entry-password");

final String selfSignedCertificateHostName =

PropertiesUtil.getProperty("site", "server-certificate-self-sign-host-name");

final String selfSignedCertificateIpAddress =

PropertiesUtil.getProperty("site", "server-certificate-self-sign-ip-address");

final Server server = new Server();

final HttpConfiguration httpConfiguration = new HttpConfiguration();

httpConfiguration.setSecureScheme("https");

httpConfiguration.setSecurePort(httpsPort);

httpConfiguration.setOutputBufferSize(32768);

httpConfiguration.setRequestHeaderSize(8192);

httpConfiguration.setResponseHeaderSize(8192);

httpConfiguration.setSendServerVersion(false);

httpConfiguration.setSendDateHeader(false);

if (httpPort > 0) {

final ServerConnector httpConnector = new ServerConnector(server,

new HttpConnectionFactory(httpConfiguration));

httpConnector.setPort(httpPort);

httpConnector.setIdleTimeout(30000);

server.addConnector(httpConnector);

}

if (httpsPort > 0) {

CertificateUtil.ensureServerCertificateExists(

selfSignedCertificateHostName,

selfSignedCertificateIpAddress,

certificateAlias,

certificatePassword,

keyStorePath, keyStorePassword);

final JettySiteSslContextFactory sslContextFactory = newSslSocketFactory(certificateAlias,

keyStorePath, keyStorePassword,

certificatePassword, requestClientAuthentication, requireClientAuthentication);

final HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration);

httpsConfiguration.addCustomizer(new SecureRequestCustomizer());

final ServerConnector httpsConnector = new ServerConnector(server,

new SslConnectionFactory(sslContextFactory, "http/1.1"),

new HttpConnectionFactory(httpsConfiguration));

httpsConnector.setPort(httpsPort);

httpsConnector.setIdleTimeout(30000);

server.addConnector(httpsConnector);

}

return server;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值