我有两个CAS-服务(CAS 6.0.3)注册(通过JSON)与不同的serviceIds和AuthenticationHandlers等。我可以再次分别对这两个服务进行身份验证(例如cas/login?service=http.service 1)。但是,当我尝试访问第二个服务(cas/login? Service =http. service 2)时,在再次验证其他服务之后,我会得到以下错误消息:
票..。与提供的服务不匹配。最初的服务是..。提供的服务是.
所有“.”匹配/是同一个服务-ID-字符串。错误消息的内部代码für是"INVALID_SERVICE“
CAS认为“好吧,您已经登录了,我可以直接将您转到您的服务”。它甚至制作了一个SessionToken进行验证,然后重定向。但是,当第二个服务验证票证时,错误消息就会出现。
是否允许Service1和Service2在登录Service1后使用相同的"SSO上下文“/CAS-会话/允许登录在service2中?对于这个主题,我可以在服务-JSON配置中使用RegisteredServiceProperty吗?
我已经阅读了这个页面上的所有内容:https://apereo.github.io/cas/6.0.x/index.html,甚至试图搜索源代码以获得这样的验证选项。
这是我的日志中启用了“跟踪”-Level的最后一行:
=============================================================
WHO: myuser
WHAT: ST-2-tNnqqJfwFeSSAqaQf-LBTF7AvsMLAPTOP-3DHMD58D
ACTION: SERVICE_TICKET_VALIDATE_SUCCESS
APPLICATION: CAS
WHEN: Wed May 15 11:02:14 CEST 2019
CLIENT IP ADDRESS: 127.0.0.1
SERVER IP ADDRESS: 127.0.0.1
=============================================================
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.validation.AbstractCasProtocolValidationSpecification] - <Is validation specification set to enforce [renew] protocol behavior? [no]. Is assertion issued from a new login? [no]>
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.validation.Cas20WithoutProxyingValidationSpecification] - <Number of chained authentications in the assertion [1]>
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.validation.AbstractCasProtocolValidationSpecification] - <Validation specification is satisfied by the produced assertion>
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.services.AbstractServicesManager] - <No environments are assigned to service [myservice]>
2019-05-15 11:02:14,965 DEBUG [org.apereo.cas.validation.RegisteredServiceRequiredHandlersServiceTicketValidationAuthorizer] - <Evaluating service [AbstractWebApplicationService(id=https://blub.blub, originalUrl=https://blub.blub, artifactId=ST-2-tNnqqJfwFeSSAqaQf-LBTF7AvsMLAPTOP-3DHMD58D, principal=null, source=service, loggedOutAlready=false, format=XML, attributes={})] to ensure required authentication handlers can satisfy assertion>
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.util.CollectionUtils] - <Converting multi-valued element [[MailboxAuthenticationHandler]]>
2019-05-15 11:02:14,966 TRACE [org.apereo.cas.web.view.CasReloadableMessageBundle] - <Examining language bundle [classpath:custom_messages_de] for the code [INVALID_SERVICE]>
2019-05-15 11:02:14,966 TRACE [org.apereo.cas.web.view.CasReloadableMessageBundle] - <Examining language bundle [classpath:messages_de] for the code [INVALID_SERVICE]>验证-响应是:(错误消息是德语的,但它是相同的/ "INVALID_SERVICE"-error):
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationFailure code="INVALID_SERVICE">Ticket 'ST-2-tNnqqJfwFeSSAqaQf-LBTF7AvsMLAPTOP-3DHMD58D' passt nicht zum angegebenen Service. Der urspr&uuml;ngliche Service war 'https://blub.blub' und der &uuml;bermittelte Service war 'https://blub.blub'.</cas:authenticationFailure>
</cas:serviceResponse>发布于 2019-05-15 12:32:54
我找到了这种行为的原因。即使在这些自定义处理程序的内部具有相同的代码/属性时,也无法在不同的服务上使用不同的AuthenticationHandler。
如果"CAS“在本例中显示更精确的错误消息(在日志中),或者在某个地方有文档记录,这将是非常好的。
https://stackoverflow.com/questions/56138577
复制相似问题