В методе контроллера вы можете получить имя домена из переменной request.domain. Затем вы можете проанализировать имя пользователя или любой другой идентификатор, который вы хотите использовать, из имени домена, используя что-то вроде:
int endIndex = request.domain.indexOf(".example.com");
if (endIndex <= 0) {
return null;
}
String subdomain = request.domain.substring(0, endIndex);
Если вы планируете использовать эту проверку поддоменов в нескольких методах, вы можете создать отдельный метод проверки домена с аннотацией @ play.mvc.Before и поместить объект пользователя в renderArgs для последующего использования в фактическом вызываемом методе контроллера и шаблоне. :
@Before
public static void resolveUserSubdomain() {
... Check subdomain and find user ...
renderArgs.put("user", user);
}
Вы также можете добавить эту проверку домена в отдельный класс контроллеров и включить его в каждый контроллер, где он вам нужен, используя @ play.mvc. С аннотацией для класса.
@With({ExampleDomainCheck.class})
public class ExampleController extends Controller {
... Controller methods ...
}