Включить службу 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 Не добавляйте ненужные вещи.