Включить службу REST для версии CAS Apereo cas-overlay-template-6.0

Я хочу включить службу REST для версии CAS Apereo cas-overlay-template-6.0 (в Ubuntu 16.04)

Я сделал следующий шаг:

Шаг 1. Добавьте компиляцию для REST API в файл build.gradle

root@ubuntu16:~/cas-overlay-template-6.0# nano build.gradle
And add two line below under dependencies clock
compile "org.apereo.cas:cas-server-support-rest:6.0.0"
compile "org.apereo.cas:cas-server-support-rest-services:6.0.0"

Шаг 2: чистая сборка

root@ubuntu16:~/cas-overlay-template-6.0# ./build.sh clean

Шаг 3. Снова создайте исходный код

root@ubuntu16:~/cas-overlay-template-6.0# ./build.sh run

Но на шаге 3 я получил такую ​​ошибку.

CAS is configured to accept a static list of credentials for authentication. While this is generally    useful for demo purposes, it is STRONGLY recommended that you DISABLE this authentication method (by     setting 'cas.authn.accept.users' to a blank value) and switch to a mode that is more suitable for production.>
2019-12-30 01:17:55,465 WARN [org.apereo.cas.config.support.authentication.AcceptUsersAuthenticationEventExecutionPlanConfiguration] - <>
2019-12-30 01:17:55,806 INFO [org.apereo.cas.config.CasPersonDirectoryConfiguration] - <Found and added static attributes [[email]] to the list of candidate attribute repositories>
2019-12-30 01:17:59,004 WARN [org.apereo.cas.web.CasWebApplicationContext] - <Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'registeredServiceResourceRestController' defined in class path resource [org/apereo/cas/support/rest/config/RestServicesConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apereo.cas.support.rest.RegisteredServiceResource]: Factory method 'registeredServiceResourceRestController' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: No attribute name is defined to enforce authorization when adding services via CAS REST APIs. This is likely due to misconfiguration in CAS settings where the attribute name definition is absent>

Где я ошибся?

1 ответ

Решение

Удали это:

compile "org.apereo.cas:cas-server-support-rest-services:6.0.0"

Этот модуль делает следующее:

Вызов CAS для регистрации приложений в собственном реестре служб. Вызов REST должен быть аутентифицирован с использованием базовой аутентификации, где учетные данные аутентифицируются и принимаются существующей стратегией аутентификации CAS, и, кроме того, аутентифицированный участник должен быть авторизован с предварительно настроенной ролью / именем атрибута и значением, указанным в конфигурации CAS через Свойства CAS. Тело запроса должно быть определением службы, которое должно быть зарегистрировано в формате JSON, и, конечно же, CAS должен быть настроен для приема конкретного типа службы, определенного в теле. Допустимый тип носителя для этого запроса - application/json.

Так что вы можете удалить его, если он вам не нужен.

Если вам это нужно, вам нужно будет определить имена / значения атрибутов, которые могут обеспечить авторизацию, как сообщает вам сообщение об ошибке.

Имя атрибута не определено для принудительной авторизации при добавлении служб через API REST CAS. Вероятно, это связано с неправильной конфигурацией в настройках CAS, где отсутствует определение имени атрибута.

Итак, определим:

# cas.rest.attributeName=
# cas.rest.attributeValue=

PS Не добавляйте ненужные вещи.

Другие вопросы по тегам