Изменить класс Secure.java игровой платформы - PullRequest
4 голосов
/ 12 июля 2011

Целесообразно ли вносить изменения в методы платформы класса безопасности Secure? Или есть ли способ обойти это?

Ответы [ 3 ]

8 голосов
/ 12 июля 2011

Secure.class нет . Security.class да .

Для внесения изменений в Secure.class. Нет, в большинстве случаев все должно быть в порядке. Но вам придется расширить Security класс. В этом классе есть несколько методов, которые должны быть переопределены, чтобы соответствовать вашему приложению.

static boolean authenticate(String username, String password);
static boolean check(String profile);
static String connected();
static void onAuthenticated();
static void onDisconnect();
static void onDisconnected();

РЕДАКТИРОВАТЬ: После прочтения всех комментариев и понимания реальной потребности Джо, вот часть решения.

  1. Создать обычную страницу входа. Вы можете сделать это, добавив защищенную зависимость в ваш файл dependencies.yml. (Также запустить play dependencies)
  2. Расширяет Security для переопределения метода аутентификации.
  3. Также переопределяет onAuthenticate метод для перенаправления на страницу вашего выбора, используя redirect()
  4. Создайте новый тег loginbox.html в папке tags. Код вставлен ниже.
  5. Используйте тег входа в систему на домашней странице: #{loginbox /}

Это значит:

  • У вас будет поле для входа на домашней странице.
  • Когда пользователи авторизуются, они будут перенаправлены на страницу по вашему выбору.
  • Когда пользователи не могут войти в систему, они будут перенаправлены на страницу входа и увидят там ошибки.

loginbox.html

#{form @authenticate()}
    <label>Login</label>
    <input type="text" name="username" maxlength="80"/>

    <label>Password</label>
    <input type="password" name="password" maxlength="80"/>

    <input type="submit" class="rounded" value="Se connecter" />
#{/form}
5 голосов
/ 12 июля 2011

Лучше расширить класс Security (как упоминал Zenklys) и переопределить интересующие вас методы. Проверьте это Воспроизвести защищенный документ Тем не менее, ничто не мешает вам изменять сам класс Secure, но вам нужно будет отразить изменения при каждом обновлении Play.

UPDATE

Если вы хотите иметь свою собственную страницу входа, это просто, просто создайте «Безопасную» папку в папке просмотра приложения и добавьте туда свою версию «login.html». то есть вы фактически переопределяете страницу входа по умолчанию для защищенного модуля.

0 голосов
/ 24 мая 2013

Хотя play советует вам расширить класс Security (и переопределить страницу login.html, выполнив команду play secure: override --login) ... Я предпочел на самом деле изменить сам безопасный модуль, потому что я не мог сделать всеЯ хотел расширить его.Итак, вот альтернативное решение, которое работает лучше для меня и дает мне меньше проблем в целом.Я использую play 1.2.4

  1. Скопируйте папку «secure» модуля из инфраструктуры воспроизведения в папку / modules (заменив текстовый файл «secure», если он есть)
  2. Удалите «require play -> secure» из dependencies.yml
  3. Закомментируйте эту строку в application.conf # module.secure = $ {play.path} / modules / secure (или измените его на module.secure = modules / secure, если это не работает)
  4. $ play зависимости
...