Alfresco票证有效期

4
我正在使用Alfresco默认的Web脚本来为用户获取票据,但我不确定这个获取的票据有效期是多久。
另外,我正在从Alfresco默认登录Web脚本的XML响应中提取票据。
票据是否有任何到期日期呢?或者一旦获得了票据,在会话过期之前它将不会过期吗?
2个回答

13

以下属性设置在Alfresco存储库上,并且默认值配置了票据生命周期为一小时:

authentication.ticket.validDuration=P1H

您可以按照惯例在 alfresco-global.properties(V3.2.2B)中覆盖此类属性。有意义的值在 Duration 类中描述:
 * The lexical representation of duration is
 * PnYnMnDTnHnMnS.
 * 
 * P is a literal value that starts the expression
 * nY is an integer number of years followed by the literal Y
 * nM is an integer number of months followed by the literal M
 * nD is an integer number of days followed by the literal D
 * T is the literal that separates the date and time
 * nH is an integer number of hours followed by a literal H
 * nM is an integer number of minutes followed by a literal M
 * nS is a decimal number of seconds followed by a literal S

请注意,默认情况下,成功使用一张票券会续期其有效期。假设您在票券生成后的59分钟内使用该票券进行身份验证(例如,使用网页脚本调用),则其有效期将延长至另一个小时。
由于票券生命周期是完全可配置的,请查看authentication-services-context.xml中定义的ticketComponent Spring bean以查看可用选项(例如,将oneOff设置为true以仅允许给定票券的单次使用)。

谢谢,但是我从XML中提取了一个通过登录网页脚本获得的凭据,并将其用于网页脚本,然后服务器闲置了超过8个小时。当我回来并使用相同的凭据ID附加到网页脚本的URL上时,它正常工作了。我对此行为的控制者感到怀疑,默认是1小时吗?这里肯定有某种验证机制。 - Finn

5
处理Alfresco身份验证票据的最佳方法是手动处理。例如,获取票据时使用OOTB Web脚本。
http://localhost:8080/alfresco/service/api/login?u=admin&pw=admin 

这里的返回机票是 TICKET_29ced6613a114294fa4bb9e67bf663112076f3d9(需要被提取出来)。

现在,在任何操作中使用此机票时,请尝试使用OOTB alfresco web脚本验证机票的有效性。请注意,这是基于HTTP GET方法的web脚本。

GET /alfresco/service/api/login/ticket/{ticket}

http://localhost:8080/alfresco/service/api/login/ticket/TICKET_29ced6613a114294fa4bb9e67bf663112076f3d9?alf_ticket=TICKET_29ced6613a114294fa4bb9e67b663112076f3d9

需要注意的是,您还需要在此Web脚本中添加?alf_ticket={ALFRESCO_TICKET}进行身份验证,否则它将无法正常工作。

最后,在完成操作后,请始终使用OOTB Alfresco注销Web脚本进行注销。请注意,这是基于HTTP DELETE方法的Web脚本。

DELETE /alfresco/service/api/login/ticket/{ticket}).

http://localhost:8080/alfresco/service/api/login/ticket/TICKET_29ced6613a114294fa4bb9e67bf663112076f3d9?alf_ticket=TICKET_29ced6613a114294fa4bb9e67bf663112076f3d9

再次,您需要通过附加?alf_ticket={ALFRESCO_TICKET}来验证此Web脚本,否则它将无法正常工作。

通过这种方式,您可以确保正确的身份验证,系统也不会负担过期票据。

附注:http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Logout


有没有办法强制每个用户请求生成新的工单?我们想启用一个队列机制,但在测试中,我们发现多个工单请求返回相同的工单。 - TheNorthWes
请将以下设置添加到alfresco-global.properties文件中: authentication.ticket.useSingleTicketPerUser=false - tarn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接