mirror of
https://github.com/SinTan1729/chhoto-url
synced 2024-12-26 07:38:36 -06:00
Added Basic auth and GZIP compression
This commit is contained in:
parent
eba16d518e
commit
59b6d43aea
4 changed files with 39 additions and 4 deletions
|
@ -23,6 +23,7 @@ jar {
|
|||
|
||||
dependencies {
|
||||
compile "com.sparkjava:spark-core:2.8.0"
|
||||
implementation 'com.qmetric:spark-authentication:1.4'
|
||||
}
|
||||
|
||||
application {
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package tk.draganczuk.url;
|
||||
|
||||
import spark.Filter;
|
||||
|
||||
import static spark.Spark.*;
|
||||
|
||||
public class App {
|
||||
|
@ -17,13 +19,25 @@ public class App {
|
|||
|
||||
port(Integer.parseInt(System.getProperty("port", "4567")));
|
||||
|
||||
// Add GZIP compression
|
||||
after(Filters::addGZIP);
|
||||
|
||||
// Authenticate
|
||||
Filter authFilter = Filters.createAuthFilter();
|
||||
before("/index.html", authFilter);
|
||||
|
||||
get("/", (req, res) -> {
|
||||
res.redirect("/index.html");
|
||||
return "Redirect";
|
||||
});
|
||||
|
||||
|
||||
path("/api", () -> {
|
||||
before("/*", authFilter);
|
||||
get("/all", Routes::getAll);
|
||||
post("/new", Routes::addUrl);
|
||||
});
|
||||
|
||||
get("/:shortUrl", Routes::goToLongUrl);
|
||||
}
|
||||
}
|
||||
|
|
20
src/main/java/tk/draganczuk/url/Filters.java
Normal file
20
src/main/java/tk/draganczuk/url/Filters.java
Normal file
|
@ -0,0 +1,20 @@
|
|||
package tk.draganczuk.url;
|
||||
|
||||
import com.qmetric.spark.authentication.AuthenticationDetails;
|
||||
import com.qmetric.spark.authentication.BasicAuthenticationFilter;
|
||||
import spark.Filter;
|
||||
import spark.Request;
|
||||
import spark.Response;
|
||||
|
||||
public class Filters {
|
||||
public static void addGZIP(Request request, Response response) {
|
||||
response.header("Content-Encoding", "gzip");
|
||||
}
|
||||
|
||||
public static Filter createAuthFilter() {
|
||||
String username = System.getenv("username");
|
||||
String password = System.getenv("password");
|
||||
|
||||
return new BasicAuthenticationFilter(new AuthenticationDetails(username, password));
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
const refreshData = async () => {
|
||||
let data = await fetch("/all").then(res => res.text());
|
||||
let data = await fetch("/api/all").then(res => res.text());
|
||||
data = data
|
||||
.split("\n")
|
||||
.filter(line => line !== "")
|
||||
|
@ -44,7 +44,7 @@ const submitForm = () => {
|
|||
const longUrl = form.elements["longUrl"];
|
||||
const shortUrl = form.elements["shortUrl"];
|
||||
|
||||
const url = `/new?long=${longUrl.value}&short=${shortUrl.value}`;
|
||||
const url = `/api/new?long=${longUrl.value}&short=${shortUrl.value}`;
|
||||
|
||||
fetch(url, {
|
||||
method: "POST"
|
||||
|
|
Loading…
Reference in a new issue