Advertisement
Guest User

Untitled

a guest
Mar 13th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.84 KB | None | 0 0
  1.  
  2.     static class BasicAuthHandler implements HttpHandler {
  3.         public void handle(HttpExchange exchange) throws IOException {
  4.             Headers header = exchange.getRequestHeaders();
  5.             String auth = header.getFirst("Authorization");
  6.             String userpass = null;
  7.  
  8.             if(auth != null){
  9.                 auth = auth.split(" ")[1];
  10.                 byte[] decoded = Base64.getDecoder().decode(auth);
  11.                 userpass = new String(decoded);
  12.                 System.out.println("auth " + auth);
  13.                 System.out.println(auth.getBytes("UTF-8"));
  14.                 System.out.println("decoded " + decoded.toString());
  15.                 System.out.println("userpass " + userpass);
  16.  
  17.             }
  18.  
  19.             if (auth == null) {
  20.                 System.out.println("Null");
  21.                 exchange.getResponseHeaders().set("WWW-Authenticate", "Basic");
  22.                 exchange.getResponseHeaders().set("charset", "UTF-8");
  23.                 exchange.sendResponseHeaders(401, 0);
  24.                 exchange.close();
  25.             } else {
  26.                 if (!userpass.equals("user:u")) {
  27.                     exchange.getResponseHeaders().set("WWW-Authenticate", "Basic");
  28.                     exchange.sendResponseHeaders(401, 0);
  29.                     exchange.close();
  30.                 } else {
  31.                     basicAuthReq(exchange);
  32.                 }
  33.             }
  34.         }
  35.  
  36.         private static void basicAuthReq(HttpExchange exchange) throws IOException {
  37.             String response = "Ta strona wymaga autoryzacji";
  38.  
  39.             exchange.sendResponseHeaders(200, response.getBytes().length);
  40.             exchange.getResponseHeaders().set("Content-Type", "text");
  41.             OutputStream os = exchange.getResponseBody();
  42.             os.write(response.getBytes());
  43.             os.close();
  44.         }
  45.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement