WSO2 IS:SessionManagementService中removeSession的sessionId参数究竟是什么

时间:2017-03-08 15:25:26

标签: wso2 wso2is

在调用WSO2 Identity Server 5.3.0 SessionManagementService时,removeSession操作需要一个sessionId参数。在该上下文中sessionId究竟是什么(例如,它是存储在cookie中的值,例如“commonAuthId”)。

背景:此管理服务功能是否可用于终止用户的会话?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用此管理服务终止用户的会话。这是执行它的方法[1]。

然而,有条件,

  1. 任何具有登录权限的用户都可以调用removeMySession(String sessionId)方法并终止自己的会话。

  2. 要终止其他用户的用户会话,调用管理服务的用户应该具有" / permission / admin / manage / identity / authentication / session / delete"权限。

  3. 需要发送到[1]的sessionId参数是commonAuthId cookie值的SHA256摘要。

    即,

    String sessionId = DigestUtils.sha256Hex(commAuthIdCookieValue); 其中sessionKey是commonAuthId cookie的值。

    [1] https://github.com/wso2/carbon-identity-framework/blob/70d5fb1e6db5a4bad2e309d8284f559a99e4feb0/components/authentication-framework/org.wso2.carbon.identity.application.authentication.framework/src/main/java/org/wso2/carbon/identity/application/authentication/framework/services/SessionManagementService.java#L36-L36

    [2] https://commons.apache.org/proper/commons-codec/archives/1.7/apidocs/org/apache/commons/codec/digest/DigestUtils.html#sha256Hex(java.lang.String)