1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.ksb.server;
17
18 import org.apache.log4j.Logger;
19 import org.eclipse.jetty.server.Connector;
20 import org.eclipse.jetty.server.handler.DefaultHandler;
21 import org.eclipse.jetty.server.handler.HandlerCollection;
22 import org.eclipse.jetty.server.handler.HandlerList;
23 import org.eclipse.jetty.server.nio.SelectChannelConnector;
24 import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
25 import org.eclipse.jetty.util.ssl.SslContextFactory;
26 import org.eclipse.jetty.server.Server;
27 import org.eclipse.jetty.webapp.WebAppContext;
28 import org.kuali.rice.core.api.config.property.Config;
29 import org.kuali.rice.core.api.config.property.ConfigContext;
30 import org.kuali.rice.core.api.exception.RiceRuntimeException;
31 import org.kuali.rice.core.api.security.credentials.CredentialsSource;
32 import org.kuali.rice.core.api.security.credentials.CredentialsSourceFactory;
33 import org.kuali.rice.ksb.BaseTestServer;
34 import org.kuali.rice.ksb.security.credentials.UsernamePasswordCredentialsSource;
35
36 import java.net.URL;
37 import java.util.Collections;
38 import java.util.List;
39
40 public class TestClient1 extends BaseTestServer {
41
42 private static final Logger LOG = Logger.getLogger(TestClient1.class);
43
44
45
46
47 public static final class ConfigConstants {
48 public final String WEB_ROOT = "org/kuali/rice/ksb/testclient1";
49 public final String CONTEXT = "/TestClient1";
50 public final Integer SERVER_HTTP_PORT = Integer.valueOf(ConfigContext.getCurrentContextConfig().getProperty("ksb.client1.port"));
51 public final Integer SERVER_HTTPS_PORT = Integer.valueOf(ConfigContext.getCurrentContextConfig().getProperty("ksb.client1.ssl.port"));
52 public final String KEYSTORE_PASS = ConfigContext.getCurrentContextConfig().getKeystorePassword();
53 public final String KEYSTORE_PATH;
54
55 public ConfigConstants() {
56 String keystoreFileTmp = null;
57
58 try {
59 keystoreFileTmp = ConfigContext.getCurrentContextConfig().getKeystoreFile();
60 } catch (Exception e) {
61 throw new RiceRuntimeException("Couldn't get keystore file location", e);
62 }
63
64 KEYSTORE_PATH = keystoreFileTmp;
65 }
66 }
67
68
69
70
71
72
73 @Override
74 protected Server createServer() {
75
76
77
78
79 registerTestCredentialsSourceFactory();
80
81 ConfigConstants configConstants = new ConfigConstants();
82
83 Server server = new Server();
84
85 SelectChannelConnector connector0 = new SelectChannelConnector();
86 connector0.setPort(configConstants.SERVER_HTTP_PORT);
87 connector0.setMaxIdleTime(30000);
88 connector0.setRequestHeaderSize(8192);
89
90 SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
91
92 ssl_connector.setPort(configConstants.SERVER_HTTPS_PORT);
93 SslContextFactory cf = ssl_connector.getSslContextFactory();
94 cf.setKeyStore(configConstants.KEYSTORE_PATH);
95 cf.setKeyStorePassword(configConstants.KEYSTORE_PASS);
96 cf.setKeyManagerPassword(configConstants.KEYSTORE_PASS);
97
98 server.setConnectors(new Connector[]{connector0, ssl_connector});
99
100 URL webRoot = getClass().getClassLoader().getResource(configConstants.WEB_ROOT);
101 String location = webRoot.getPath();
102
103 LOG.debug("#####################################");
104 LOG.debug("#");
105 LOG.debug("# Starting Client1 using following web root " + location);
106 LOG.debug("#");
107 LOG.debug("#####################################");
108
109 WebAppContext context = new WebAppContext();
110 context.setResourceBase(location);
111 context.setContextPath(configConstants.CONTEXT);
112
113 HandlerCollection handlers = new HandlerCollection();
114 handlers.addHandler(context);
115 server.setHandler(handlers);
116
117 server.setDumpAfterStart(true);
118
119
120 return server;
121 }
122
123
124
125
126
127 private void registerTestCredentialsSourceFactory() {
128 List<CredentialsSource> credentialsSources =
129 Collections.<CredentialsSource>singletonList(
130 new UsernamePasswordCredentialsSource("gilesp", "thuperthecret"));
131
132 CredentialsSourceFactory credentialsSourceFactory = new CredentialsSourceFactory();
133 credentialsSourceFactory.setCredentialsSources(credentialsSources);
134
135 try {
136 credentialsSourceFactory.afterPropertiesSet();
137 } catch (Exception e) {
138 throw new RiceRuntimeException(e);
139 }
140
141 ConfigContext.getCurrentContextConfig().putObject(Config.CREDENTIALS_SOURCE_FACTORY, credentialsSourceFactory);
142 }
143 }