private Restlet secure(Application app, Verifier verifier, String realm) { ChallengeAuthenticator guard = new ChallengeAuthenticator(getContext().createChildContext(), ChallengeScheme.HTTP_OAUTH_BEARER, realm); guard.setVerifier(verifier); guard.setNext(app); return guard; }
boolean result = false; boolean loggable = request.isLoggable() && getLogger().isLoggable(Level.FINE); if (getVerifier() != null) { switch (getVerifier().verify(request, response)) { case Verifier.RESULT_VALID: getLogger().fine( "Authentication succeeded. Valid credentials provided for identifier: " + request.getChallengeResponse() .getIdentifier() + "."); } else { getLogger() .fine("Authentication succeeded. Valid credentials provided."); getLogger().fine( "Authentication failed. No credentials provided."); if (!isOptional()) { challenge(response, false); getLogger() .fine("Authentication failed. Invalid credentials provided."); if (!isOptional()) { if (isRechallenging()) { challenge(response, false); } else {
@Override public Restlet createInboundRoot() { Router router = (...) Verifier verify = new MyVerifier(...); Enroler enroler = new MyEnroler(...); ChallengeAuthenticator guard = new ChallengeAuthenticator(getContext(), ChallengeScheme.HTTP_BASIC, "connector"); guard.setVerifier(verifier); guard.serEnrole(enroler); guard.setNext(router); return guard; }
authenticator.setVerifier(verifier); router.attach("/test", HelloResource.class); authorizer.setNext(router); authenticator.setNext(authorizer); return authenticator;
/** * Creates a root Router to dispatch call to server resources. */ @Override public Restlet createInboundRoot() { Router router = new Router(getContext()); router.attach("/", RootServerResource.class); router.attach("/accounts/", AccountsServerResource.class); router.attach("/accounts/{accountId}", AccountServerResource.class); ChallengeAuthenticator authenticator = new ChallengeAuthenticator( getContext(), ChallengeScheme.HTTP_BASIC, "My Realm"); authenticator.setNext(router); return authenticator; } }
ChallengeAuthenticator guard = new ChallengeAuthenticator( context, ChallengeScheme.HTTP_BASIC, getName() + " Realm" ); guard.setVerifier( verifier ); guard.setEnroler( enroler );
private static void collectForFilter(CollectInfo collectInfo, String basePath, Filter filter, ChallengeScheme scheme, List<? extends IntrospectionHelper> introspectionHelper) { if (filter instanceof ChallengeAuthenticator) { scheme = ((ChallengeAuthenticator) filter).getScheme(); collectInfo.addSchemeIfNotExists(scheme); } collect(collectInfo, basePath, filter.getNext(), scheme, introspectionHelper); }
result.setVerifier(nextRealm.getVerifier()); result.setEnroler(nextRealm.getEnroler()); result.setOptional(Boolean.valueOf(propertyUtil.get(OasProps.PROP_CHALLENGE_AUTH_OPTIONAL, OasProps.DEF_CHALLENGE_AUTH_OPTIONAL))); OasProps.PROP_ONTOLOGY_MANAGER_PATH, OasProps.DEF_ONTOLOGY_MANAGER_PATH)); result.setMultiAuthenticating(false); result.setVerifier(nextRealm.getVerifier()); result.setEnroler(nextRealm.getEnroler()); result.setOptional(Boolean.valueOf(propertyUtil.get(OasProps.PROP_CHALLENGE_AUTH_OPTIONAL, OasProps.DEF_CHALLENGE_AUTH_OPTIONAL)));
public class MyApplication extends Application { public Restlet createInboundRoot() { Router router = new Router(getContext()); (...) ChallengeAuthenticator ca = new ChallengeAuthenticator(getContext(), ChallengeScheme.HTTP_BASIC, "admin"); Verifier verifier = (...) Enroler enroler = new MyEnroler(this); ca.setNext(router); return ca; } }
ChallengeAuthenticator guard = new ChallengeAuthenticator(getContext(), ChallengeScheme.HTTP_BASIC, "realm") { public void challenge(org.restlet.Response response, boolean stale) { String requestedFrom = response.getRequest().getHeaders().getFirstValue("X-Requested-With"); if (!"XMLHttpRequest".equals(requestedFrom)) { super.challenge(response, stale); } else { response.setStatus(Status.CLIENT_ERROR_UNAUTHORIZED); } }; };
/** * This method should be overridden to return a login form representation. */ @Override public void challenge(final Response response, final boolean stale) { this.log.debug("Calling super.challenge"); super.challenge(response, stale); }
Router router = (...) Authorizer authorizer = new MyAuthorizer(); authorizer.setNext(router); Verifier verify = new MyVerifier(...); Enroler enroler = new MyEnroler(...); ChallengeAuthenticator guard = new ChallengeAuthenticator(getContext(), ChallengeScheme.HTTP_BASIC, "connector"); guard.setVerifier(verifier); guard.serEnrole(enroler); guard.setNext(authorizer); return guard; }
// Guard the restlet with BASIC authentication. ChallengeAuthenticator guard = new ChallengeAuthenticator(null, ChallengeScheme.HTTP_BASIC, "testRealm"); // Instantiates a Verifier of identifier/secret couples based on a simple Map. MapVerifier mapVerifier = new MapVerifier(); // Load a single static login/secret pair. mapVerifier.getLocalSecrets().put("login", "secret".toCharArray()); guard.setVerifier(mapVerifier); // Application JaxRsApplication application = new JaxRsApplication(childContext); application.add(this); application.setStatusService(new ErrorStatusService()); // Set application within guard guard.setNext(application); // <-------- // Create and configure component Component component = new Component(); component.getServers().add(Protocol.HTTP, 8182); component.getDefaultHost().attachDefault(guard);
/** * Creates a root Router to dispatch call to server resources. */ @Override public Restlet createInboundRoot() { Router router = new Router(getContext()); router.attach("/", RootServerResource.class); router.attach("/accounts/", AccountsServerResource.class); router.attach("/accounts/{accountId}", AccountServerResource.class); router.attach("/accounts/{accountId}/files", FilesServerResource.class); RoleAuthorizer authorizer = new RoleAuthorizer(); authorizer.getAuthorizedRoles().add(getRole("CFO")); authorizer.setNext(router); ChallengeAuthenticator authenticator = new ChallengeAuthenticator( getContext(), ChallengeScheme.HTTP_BASIC, "My Realm"); authenticator.setNext(authorizer); return authenticator; } }
private static void collectForFilter(CollectInfo collectInfo, String basePath, Filter filter, ChallengeScheme scheme, List<? extends IntrospectionHelper> introspectionHelper) { if (filter instanceof ChallengeAuthenticator) { scheme = ((ChallengeAuthenticator) filter).getScheme(); collectInfo.addSchemeIfNotExists(scheme); } collect(collectInfo, basePath, filter.getNext(), scheme, introspectionHelper); }
public class RestletApplication extends Application { (...) @Override public Restlet createInboundRoot() { Router router = new Router(getContext()); (...) ChallengeAuthenticator guard = new ChallengeAuthenticator( null, ChallengeScheme.HTTP_BASIC, "testRealm"); (...) guard.setNext(router); Filter filter = new SecurityPostProcessingFilter( getContext(), guard); return filter; } }
this.getAuthenticator().challenge(response, false);
@Override public Restlet createInboundRoot() { // Create a simple password verifier MapVerifier verifier = new MapVerifier(); verifier.getLocalSecrets().put("scott", "tiger".toCharArray()); // Create a guard ChallengeAuthenticator guard = new ChallengeAuthenticator(getContext(), ChallengeScheme.HTTP_BASIC, "Tutorial"); guard.setVerifier(verifier); // Create a Directory able to return a deep hierarchy of files Directory directory = new Directory(getContext(), "file:///tmp"); directory.setListingAllowed(true); guard.setNext(directory); return guard; }
private static void collectForFilter(CollectInfo collectInfo, String basePath, Filter filter, ChallengeScheme scheme, List<? extends IntrospectionHelper> introspectionHelper) { if (filter instanceof ChallengeAuthenticator) { scheme = ((ChallengeAuthenticator) filter).getScheme(); collectInfo.addSchemeIfNotExists(scheme); } collect(collectInfo, basePath, filter.getNext(), scheme, introspectionHelper); }