2013-05-03 186 views
-2

我想實現一個簡單的Web服務器(如Apache),與靜態內容。服務器必須通過用戶名和密碼或通過IP地址提供身份驗證。簡單的身份驗證的網絡服務器

源代碼或任何有用的教程將非常有用。

謝謝您的回答。

+3

*「源代碼或任何有用的教程將非常有幫助。」*顯示工作量並詢問(特定)問題也會有所幫助。就目前來看,這不是一個真正的問題。 – 2013-05-03 09:05:51

回答

6

如果你想它很簡單,你可以嘗試JDK 1.6 com.sun.net.httpserver.HttpServer,它也有基本身份驗證mechanizm:

HttpServer server = HttpServer.create(new InetSocketAddress(8888), 0); 
    HttpContext cc = server.createContext("/test", new MyHandler()); 
    cc.setAuthenticator(new BasicAuthenticator("test") { 
     @Override 
     public boolean checkCredentials(String user, String pwd) { 
      return user.equals("test") && pwd.equals("test"); 
     } 
    }); 
    server.setExecutor(null); // creates a default executor 
    server.start(); 

如果你希望它是簡單的,比如Apache,然後嘗試碼頭http://www.eclipse.org/jetty/它是一個真正的Web服務器它易於使用,並且可以嵌入到Java獨立應用程序中。

0

的技術,那你可能需要的,被稱爲Spring 3 security。它經常被用於java EE應用程序的框架。嘗試谷歌它。我相信你會發現很多有用的信息和教程。

5

由於Java 1.6,有一個內置HTTP server。 這是一個Example

package com.example; 

import java.io.IOException; 
import java.io.OutputStream; 
import java.net.InetSocketAddress; 
import com.sun.net.httpserver.HttpExchange; 
import com.sun.net.httpserver.HttpHandler; 
import com.sun.net.httpserver.HttpServer; 

public class Test { 

public static void main(String[] args) throws Exception { 
    HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); 
    server.createContext("/test", new MyHandler()); 
    server.setExecutor(null); // creates a default executor 
    server.start(); 
} 

static class MyHandler implements HttpHandler { 
    public void handle(HttpExchange t) throws IOException { 
     String response = "This is the response"; 
     t.sendResponseHeaders(200, response.length()); 
     OutputStream os = t.getResponseBody(); 
     os.write(response.getBytes()); 
     os.close(); 
    } 
} 

} 

執行它,去http://localhost:8000/test,你會看到響應

此外,JettyExample

+0

非常感謝您的快速回復,但我如何添加到您的代碼驗證?我必須使用下面提到的Spring 3安全性嗎? – user1554427 2013-05-03 09:12:48

+0

沒有必要,那是你的邏輯! – 2013-05-03 09:16:31

0

你可以看看NanoHTTPPD的源代碼。這是一個用Java編寫的非常簡單的Web服務器。