Создание Restlet Authorizer для точной авторизации
Я пытаюсь реализовать RESTful API, используя Restlet, и нашел очень мало всего, кроме базовых авторизаторов ролей и методов. Я сохранил в базе данных маршруты и методы для тех маршрутов, к которым пользователь может получить доступ. Вопрос яТеперь я сталкиваюсь с тем, как получить путь в Авторизаторе. Это ресурс, который ямне нужно собрать? И как именно я должен направить к авторизатору? Я'Я опубликовал то, что у меня есть, и смотрю, как в моем Авторизаторе получить путь или ресурс. Любая информация ценится, яя посмотрел книги и много общих примеров и убежищене нашел тихо, что яищу
Мое приложение маршрутизации:
public class MyRoutingApp extends org.restlet.Application {
@Override
public synchronized Restlet createInboundRoot() {
Context context = getContext();
Router router = new Router(context);
router.attach("/user", Users.class);
router.attach("/post", Posts.class);
router.attach("/comment", Comments.class);
ChallengeAuthenticator authenticator = new ChallengeAuthenticator(
context, ChallengeScheme.HTTP_BASIC, "My test realm" );
//create Verifier to ensure that the user is authenicated
MyVerifier verifier = new MySecretVerifier();
//grab user Roles and add them to the request
MyEnroler enroler = new MyEnroler();
authenticator.setVerifier( verifier );
authenticator.setEnroler( enroler );
//Looks up if user can be allowed to resource
MyAuthorizer authorizer = new MyAuthorizer();
authorizer.setNext( router );
authenticator.setNext( authorizer );
return authenticator;
}
}
Мой Авторизатор:
public class MyAuthorizer extends Authorizer {
@Override
protected boolean authorize( Request request, Response response ) {
//has the security roles and user from verifier and enroler
ClientInfo info = request.getClientInfo();
//get http method
Method method = request.getMethod();
//need to get the route or resource user is attempting to access
//allow or disallow access based on roles and method
}
}