01: /*
02: * Copyright 2005-2007 Noelios Consulting.
03: *
04: * The contents of this file are subject to the terms of the Common Development
05: * and Distribution License (the "License"). You may not use this file except in
06: * compliance with the License.
07: *
08: * You can obtain a copy of the license at
09: * http://www.opensource.org/licenses/cddl1.txt See the License for the specific
10: * language governing permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL HEADER in each file and
13: * include the License file at http://www.opensource.org/licenses/cddl1.txt If
14: * applicable, add the following below this CDDL HEADER, with the fields
15: * enclosed by brackets "[]" replaced with your own identifying information:
16: * Portions Copyright [yyyy] [name of copyright owner]
17: */
18:
19: package org.restlet.example.tutorial;
20:
21: import org.restlet.Application;
22: import org.restlet.Component;
23: import org.restlet.Directory;
24: import org.restlet.Guard;
25: import org.restlet.Restlet;
26: import org.restlet.data.ChallengeScheme;
27: import org.restlet.data.Protocol;
28: import static org.restlet.example.tutorial.Constants.*;
29:
30: /**
31: * Guard access to a Restlet.
32: *
33: * @author Jerome Louvel (contact@noelios.com)
34: */
35: public class Part09a {
36: public static void main(String[] args) throws Exception {
37: // Create a component
38: Component component = new Component();
39: component.getServers().add(Protocol.HTTP, 8182);
40: component.getClients().add(Protocol.FILE);
41:
42: // Create an application
43: Application application = new Application(component
44: .getContext()) {
45: @Override
46: public Restlet createRoot() {
47: // Create a Guard
48: Guard guard = new Guard(getContext(),
49: ChallengeScheme.HTTP_BASIC, "Tutorial");
50: guard.getSecrets().put("scott", "tiger".toCharArray());
51:
52: // Create a Directory able to return a deep hierarchy of files
53: Directory directory = new Directory(getContext(),
54: ROOT_URI);
55: guard.setNext(directory);
56: return guard;
57: }
58: };
59:
60: // Attach the application to the component and start it
61: component.getDefaultHost().attach("", application);
62: component.start();
63: }
64:
65: }
|