为 CAS Apereo 版本 cas-overlay-template-6.0 启用 REST 服务

Enable REST service for CAS Apereo version cas-overlay-template-6.0

我想为 CAS Apereo 版本 cas-overlay-template-6.0(在 Ubuntu 16.04)启用 REST 服务

我已经完成了这一步:

第 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>

我哪里做错了?

删除这个:

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

此模块执行此操作:

Invoke CAS to register applications into its own service registry. The REST call must be authenticated using basic authentication where credentials are authenticated and accepted by the existing CAS authentication strategy, and furthermore the authenticated principal must be authorized with a pre-configured role/attribute name and value that is designated in the CAS configuration via the CAS properties. The body of the request must be the service definition that shall be registered in JSON format and of course, CAS must be configured to accept the particular service type defined in the body. The accepted media type for this request is application/json.

因此,如果您不需要该功能,可以将其删除。

如果您确实需要它,您将需要定义属性 names/values,它可以像错误消息告诉您的那样强制执行授权。

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.

所以,定义:

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

PS不要添加不需要的东西。