2013-05-03 4 views
-2

Я хочу реализовать простой веб-сервер (например, apache) со статическим контентом. Сервер должен предлагать аутентификацию по имени пользователя и паролю или по IP-адресу.Простой веб-сервер с аутентификацией

Исходный код или любое полезное учебное пособие будут действительно полезны.

Спасибо за ваши ответы.

+3

* «Исходный код или любое полезное учебное пособие будут очень полезны». * Было бы полезно показать усилия и задать (конкретный) вопрос. Как бы то ни было, это «не настоящий вопрос». –

ответ

6

Если вы хотите на самом деле просто вы можете попробовать JDK 1.6 com.sun.net.httpserver.HttpServer, он также имеет основной Механизм аутентификации:

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(); 

Если вы хотите, чтобы это было просто как апач попробуйте Jetty http://www.eclipse.org/jetty/ это реальный веб-сервер который прост в использовании и может быть встроен в автономное приложение Java.

0

Технология, которая вам, вероятно, понадобится, называется Spring 3 security. Это довольно часто используется для приложений java EE. Попробуйте Google. Я уверен, что вы найдете много полезной информации и учебников.

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 и вы увидите ответ

Кроме того, Jetty: Example

+0

спасибо за очень быстрый ответ, но как я могу добавить к аутентификации кода? Должен ли я использовать безопасность Spring 3, упомянутую ниже? – user1554427

+0

не нужно, это ваша логика !!!! –

0

Вы можете посмотреть на исходный код NanoHTTPPD. Это очень простой веб-сервер, написанный на Java.

Смежные вопросы