Не могу установить StarUML в Ubuntu 16.04

Почему эта ошибка происходит?

Это происходит из-за схемы SessionAuthentication по умолчанию, используемой DRF. DRF SessionAuthentication использует среду сеансов Django для аутентификации, которая требует проверки CSRF.

Если вы не определяете какой-либо authentication_classes в вашем представлении / просмотре, DRF использует эти классы проверки подлинности в качестве значения по умолчанию.

'DEFAULT_AUTHENTICATION_CLASSES'= (
    'rest_framework.authentication.SessionAuthentication',
    'rest_framework.authentication.BasicAuthentication'
),

Поскольку DRF необходимо поддерживать как сеанс, так и несинхронная аутентификация на одни и те же представления, она обеспечивает проверку CSRF только для аутентифицированных пользователей. Это означает, что только аутентифицированные запросы требуют токенов CSRF, а анонимные запросы могут быть отправлены без токенов CSRF.

Если вы используете API стиля AJAX с SessionAuthentication, вам нужно будет указать действительный токен CSRF для любого «небезопасные» вызовы HTTP-метода, например PUT, PATCH, POST or DELETE.

Что делать?

Теперь, чтобы отключить проверку csrf, вы можете создать собственный класс проверки подлинности CsrfExemptSessionAuthentication, который простирается от класса по умолчанию SessionAuthentication. В этом классе аутентификации мы переопределим проверку enforce_csrf(), которая происходила внутри фактического SessionAuthentication.

from rest_framework.authentication import SessionAuthentication, BasicAuthentication 

class CsrfExemptSessionAuthentication(SessionAuthentication):

    def enforce_csrf(self, request):
        return  # To not perform the csrf check previously happening

В вашем представлении вы можете определить authentication_classes следующим образом:

authentication_classes = (CsrfExemptSessionAuthentication, BasicAuthentication)

Это должно обрабатывать ошибку csrf.

29
задан Finn 8 May 2016 в 02:31
поделиться

6 ответов

  1. Загрузите libgcrypt11_1.5.3 из: https://launchpad.net/ubuntu/+archive/primary/+files/libgcrypt11_1.5.3-2ubuntu4.2_amd64.deb

  2. Установить lib с помощью dpkg sudo dpkg -i libgcrypt11_1.5.3-2ubuntu4.2_amd64.deb

  3. Установить StarUML с помощью dpkg sudo dpkg -i StarUML-v2.7.0-64-bit.deb

100
ответ дан Finn 8 May 2016 в 02:31
поделиться

Скачать

wget http://security.ubuntu.com/ubuntu/pool/main/libg/libgcrypt11/libgcrypt11_1.5.3-2ubuntu4_amd64.deb

Установить lib с помощью dpkg

sudo dpkg -i libgcrypt11_1.5.3-2ubuntu4_amd64.deb

Установить StarUML с помощью dpkg

sudo dpkg -i StarUML-v2.8.0-64-bit.deb
9
ответ дан hanneseilers 8 May 2016 в 02:31
поделиться

Добавление в эту тему для Ubuntu 18.04:

  1. Загрузите libgcrypt11 по предоставленной ссылке:

    https://launchpad.net/ubuntu/+ архив / основной / + файлы / libgcrypt11_1.5.3-2ubuntu4.2_amd64.deb

  2. Теперь установите его с помощью команды:

    sudo dpkg -i libgcrypt11_1.5.3-2ubuntu4.2_amd64.deb
    
  3. Теперь нам нужно установить еще одну зависимость, libcurl3. Запустите команду:

    sudo apt install libcurl3
    
  4. Теперь продолжите установку StarUML:

    sudo dpkg -i StarUML-v2.8.1-64-bit.deb
    

    Обратите внимание, что имя файла будет меняться в зависимости от версии StarUML. [ +1115]

Вот и все. Сработал как шарм для меня.

3
ответ дан Sérgio Mafra 8 May 2016 в 02:31
поделиться

У меня была эта ошибка при попытке установить программу Start UML перед установкой пакета libgcrypt11_1.5.3-2ubuntu4_amd64.deb. Если вы выполните описанные выше шаги, пожалуйста, запустите:

sudo apt-get -f install

со мной, запустите

2
ответ дан Hong Son Nguyen 8 May 2016 в 02:31
поделиться

Мне пришлось выполнить следующие шаги:

Установка файла deb с помощью dpkg:

sudo dpkg -i StarUML-v2.8.0-64-bit.deb

, а затем команда sudo apt-get install -f.

0
ответ дан Kulasangar 8 May 2016 в 02:31
поделиться

Дополнительно вы должны установить libpango-1.0-0

sudo apt install libpango-1.0-0  
0
ответ дан Juan Gonzalez 8 May 2016 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: