2013-05-03 128 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服务器。