WSO2 IS:SessionManagementService中removeSession的sessionId参数到底是什么

WSO2 IS: What exactly is the sessionId parameter of removeSession in SessionManagementService

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

背景:这个管理服务功能可以用来终止用户的会话吗?

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

但是有一个条件,

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

  2. 要终止另一个用户的用户会话,调用管理服务的用户应具有“/permission/admin/manage/identity/authentication/session/delete”权限。

需要发送到[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)