import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.URL;
+import java.net.URLConnection;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.cacert.gigi.DevelLauncher;
import org.cacert.gigi.database.DatabaseConnection;
Integer.parseInt(parts[1])));
return;
}
- url = "localhost:" + testProps.getProperty("serverPort");
+ url = testProps.getProperty("name.www") + ":"
+ + testProps.getProperty("serverPort");
gigi = Runtime.getRuntime().exec(testProps.getProperty("java"));
DataOutputStream toGigi = new DataOutputStream(
gigi.getOutputStream());
System.out.println("... starting server");
Properties mainProps = new Properties();
mainProps.setProperty("host", "127.0.0.1");
+ mainProps.setProperty("name.secure", "sec");
+ mainProps
+ .setProperty("name.www", testProps.getProperty("name.www"));
+ mainProps.setProperty("name.static", "stat");
+
mainProps.setProperty("port", testProps.getProperty("serverPort"));
mainProps.setProperty("emailProvider",
"org.cacert.gigi.email.TestEmailProvider");
byte[] keystore = Files.readAllBytes(Paths
.get("config/keystore.pkcs12"));
- DevelLauncher.writeGigiConfig(toGigi, new byte[]{},
+ DevelLauncher.writeGigiConfig(toGigi, "changeit".getBytes(),
"changeit".getBytes(), mainProps, cacerts, keystore);
toGigi.flush();
- // TODO wait for ready
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+
final BufferedReader br = new BufferedReader(new InputStreamReader(
gigi.getErrorStream()));
String line;
while ((line = br.readLine()) != null
&& !line.contains("Server:main: Started")) {
- System.err.println(line);
}
new Thread() {
@Override
}
}
}.start();
- System.err.println(line);
if (line == null) {
throw new Error("Server startup failed");
}
@AfterClass
public static void tearDownServer() {
String type = testProps.getProperty("type");
+ ter.destroy();
if (type.equals("local")) {
return;
}
gigi.destroy();
}
-
@After
public void removeMails() {
ter.reset();
throw new Error(e);
}
}
+ /**
+ * Creates a new user with 100 Assurance points given by an (invalid)
+ * assurance.
+ *
+ * @param firstName
+ * the first name
+ * @param lastName
+ * the last name
+ * @param email
+ * the email
+ * @param password
+ * the password
+ * @return a new userid.
+ */
public int createAssuranceUser(String firstName, String lastName,
String email, String password) {
int uid = createVerifiedUser(firstName, lastName, email, password);
headerField = headerField.substring(0, headerField.indexOf(';'));
return headerField;
}
+
+ public String getCSRF(URLConnection u) throws IOException {
+ String content = IOUtils.readURL(u);
+ Pattern p = Pattern.compile("<input type='csrf' value='([^']+)'>");
+ Matcher m = p.matcher(content);
+ if (!m.find()) {
+ throw new Error("New CSRF Token");
+ }
+ return m.group(1);
+ }
}