Advertisement
tpeierls

Response to "Authenticator and Component XML configuration"

May 14th, 2014
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * This is part of a response to a question in this Restlet discussion:
  3.  * http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3078331
  4.  */
  5. package net.peierls.example.restlet.authrouting;
  6.  
  7. import org.restlet.*;
  8. import org.restlet.data.*;
  9. import org.restlet.routing.*;
  10. import org.restlet.resource.*;
  11. import org.restlet.security.*;
  12.  
  13.  
  14. public class AuthRoutingExample extends Application {
  15.  
  16.     Verifier verifier;
  17.  
  18.     @Override
  19.     public Restlet createInboundRoot(){
  20.         Router router = new Router(getContext());
  21.  
  22.         router.attach("/", RootServerResource.class);
  23.  
  24.         router.attach("/ifaces", IfacesServerResource.class);
  25.         router.attach("/ifaces/{ifaceId}", IfaceServerResource.class);
  26.  
  27.         router.attach("/apps", AppsServerResource.class);
  28.         router.attach("/apps/{appId}/", authenticated(AppServerResource.class));
  29.         router.attach("/apps/{appId}/rules", authenticated(RulesServerResource.class));
  30.         router.attach("/apps/{appId}/rules/{ruleId}", authenticated(RuleServerResource.class));
  31.  
  32.         return router;
  33.     }
  34.  
  35.     /**
  36.      * Wraps a resource with a Tracer, then wraps that with a ChallengeAuthenticator.
  37.      */
  38.     private Restlet authenticated(Class<? extends ServerResource> targetClass) {
  39.         Tracer tracer = new Tracer(getContext());
  40.         tracer.setNext(targetClass);
  41.  
  42.         ChallengeAuthenticator authenticator = new ChallengeAuthenticator(
  43.                 getContext(), ChallengeScheme.HTTP_BASIC, "AndroPi");
  44.         authenticator.setVerifier(verifier);
  45.         authenticator.setNext(tracer);
  46.  
  47.         return authenticator;
  48.     }
  49.  
  50.     static class RootServerResource extends ServerResource {}
  51.     static class IfacesServerResource extends ServerResource {}
  52.     static class IfaceServerResource extends ServerResource {}
  53.     static class AppsServerResource extends ServerResource {}
  54.     static class AppServerResource extends ServerResource {}
  55.     static class RulesServerResource extends ServerResource {}
  56.     static class RuleServerResource extends ServerResource {}
  57.     static class Tracer extends Filter {
  58.         Tracer(Context context) { super(context); }
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement