Авторизация в ejudge

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
OkMan
Posts:18
Joined:13 May 2014, 18:49
Авторизация в ejudge

Post by OkMan » 04 October 2014, 19:51

Доброго времени суток,
(ejudge 2.3.29+ (SVN r7685))
Когда пользователь авторизуется на определённый контест, ему выдаётся SID, и для того, чтобы переключиться на другой контест ему надо выйти и снова зайти. Можно ли сделать чтоб ему не надо было выходить? И можно ли SID хранить например в куках, чтоб по переходу с другого сайта он уже был авторизован на контест (если входил на эту страницу ранее)?

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Авторизация в ejudge

Post by cher » 07 October 2014, 07:51

Пользователю не нужно выходить, чтобы зайти в другой турнир, можно работать в нескольких турнирах одновременно.

OkMan
Posts:18
Joined:13 May 2014, 18:49

Re: Авторизация в ejudge

Post by OkMan » 09 October 2014, 08:29

А как это сделать, не теряя авторизации?

У меня не получается, делаю так:
Захожу /cgi-bin/register, выбираю контест и перехожу по ссылке
Авторизуюсь и могу сабмитить
Перехожу обратно на вкладку контестов и кликаю на другом контесте, но там я уже не авторизован
Или если взять ссылку авторизованного пользователя и добавить к ней &contest_id=новыйномер, то контест выбранный остается и на новый не переключается

Все контесты состоявшиеся, включенные в режиме дорешки. (Версия 2.3.29+)

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Авторизация в ejudge

Post by cher » 11 October 2014, 23:07

А почему не зайти еще раз на register и снова ввести логин/пароль?

OkMan
Posts:18
Joined:13 May 2014, 18:49

Re: Авторизация в ejudge

Post by OkMan » 26 October 2014, 00:48

Например, чтобы один пользователь мог передать ссылку на контест просто скопировав URL в браузере, без удаления SID.
Ещё у меня на серве стоят rewrite, типа: /contest/13/ -> /cgi-bin/new-client?contest_id=13, но дело в том, что сами cgi-bin программы ссылаются абсолютно, и в итоге это все равно приводит к ссылками вида /cgi-bin/new-client?contest_id=13, можно ли это как-то исправить? То есть чтобы ссылка http://site.com/cgi-bin/new-client?contest_id=13, выводилась new-client-ом как /contest/13/

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Авторизация в ejudge

Post by alexbagirov » 26 October 2014, 15:42

OkMan wrote:Например, чтобы один пользователь мог передать ссылку на контест просто скопировав URL в браузере, без удаления SID.
Ещё у меня на серве стоят rewrite, типа: /contest/13/ -> /cgi-bin/new-client?contest_id=13, но дело в том, что сами cgi-bin программы ссылаются абсолютно, и в итоге это все равно приводит к ссылками вида /cgi-bin/new-client?contest_id=13, можно ли это как-то исправить? То есть чтобы ссылка http://site.com/cgi-bin/new-client?contest_id=13, выводилась new-client-ом как /contest/13/
Не подскажете, как Вы настроили такой Rewrite?

OkMan
Posts:18
Joined:13 May 2014, 18:49

Re: Авторизация в ejudge

Post by OkMan » 27 October 2014, 02:38

В nginx в настройках сайта прописано примерно так (без учёта параметров):

Code: Select all

  location ~^/contest/[0-9]+[/]*$ {
    rewrite ^/contest/([0-9]+) /cgi-bin/new-client?contest_id=$1 last;
  }
Для сервера на базе Apache можно аналогичное прописать в .htaccess или настройках сайта через RewriteEngine On.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Авторизация в ejudge

Post by cher » 27 October 2014, 07:56

попробуйте такой редирект в конфиге апача

Code: Select all

       Redirect /cgi-bin/new-client    "/ej/user"

OkMan
Posts:18
Joined:13 May 2014, 18:49

Re: Авторизация в ejudge

Post by OkMan » 05 November 2014, 01:57

Но это ведь не позволит делать ссылки вида /contest/12/.

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Авторизация в ejudge

Post by alexbagirov » 06 November 2014, 10:57

OkMan wrote:

Code: Select all

  location ~^/contest/[0-9]+[/]*$ {
    rewrite ^/contest/([0-9]+) /cgi-bin/new-client?contest_id=$1 last;
  }
Если это вставить в .htaccess, то будет работать?

OkMan
Posts:18
Joined:13 May 2014, 18:49

Re: Авторизация в ejudge

Post by OkMan » 07 November 2014, 12:03

Нет, это будет работать только для nginx. Для Apache будет работать что-нибудь типа этого:

Code: Select all

RewriteEngine on
RewriteRule   ^/contest/([0-9]+)$  /cgi-bin/new-client?contest_id=$1  [R]

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Авторизация в ejudge

Post by alexbagirov » 08 November 2014, 20:36

Где должен располагаться .htaccess с этими строками?

User avatar
majicman3
Posts:57
Joined:06 February 2014, 13:43
Location:Ханты-Мансийск

Re: Авторизация в ejudge

Post by majicman3 » 10 November 2014, 16:42

В корне сайта.

Но лучше прописать эти правила не в htaccess, а в httpd.conf

Post Reply