Я работаю над областью администратора в качестве подпроекта моего основного проекта. В моем файле сборка у меня естьКак ограничить доступ к определенному игровому маршруту
val main = play.Project(appName, appVersion, appDependencies).dependsOn(admin)
и в моих маршрутах я имею
-> /admin admin.Routes
админка прекрасно работает, но я хочу, чтобы иметь возможность ограничить доступ к тем пользователям, которые имеют роль администратор ,
Я попробовал этот Глобальной
@Override
public Handler onRouteRequest(Http.RequestHeader request) {
if(UserInfo.getCurrent().hasRole(SecurityRole.Type.ADMIN)){
if(request.path().startsWith("/admin")){
return admin.Routes.routes().apply(Http.Context.current()._requestHeader());
}
}
return super.onRouteRequest(request);
}
}
который захватывает пользователь из текущего контекста. Но я получаю ошибку
RuntimeException: There is no HTTP Context available from here.
Я полагаю, я мог настроить безопасность в области администрирования с помощью засов, но я полагал, что, поскольку основные файловые маршруты в подпроекта будет какая-то простой способ просто ограничить доступ основной проект, но я ничего не нашел.
Любая помощь будет оценена по достоинству.
Я бы сделал это с помощью Action Composition: http://www.playframework.com/documentation/2.2.1/JavaActionsComposition – adis