由上下文接受端在收到同位体的标记后调用。此方法会返回一个输出标记,应用程序将把该标记发送到同位体、以便通过其 initSecContext 调用进行进一步处理。
应用程序可以通过调用 isEstablished 来确定是否完成了此同位体的上下文创建阶段。如果从 isEstablished 中返回的值是 false,则指示希望为此方法提供更多的标记。完成上下文创建后,可通过 get 方法查询可用的上下文选项。
注意,有可能出现这样一种情况:acceptSecContext 为同位体返回一个标记,isEstablished 也返回 true。这表示,需要将标记发送给同位体,但该上下文的本地端现已完全创建。
有些机制提供商可能会要求调用方授予接受安全上下文的权限。失败的权限检查可能会导致从此方法中抛出 SecurityException。
以下示例代码演示了使用此方法的方式:
byte[] inToken;
byte[] outToken;
GSSContext context ...
// Loop while there is still a token to be processed
while (!context.isEstablished()) {
inToken = readToken();
outToken = context.acceptSecContext(inToken, 0,
inToken.length);
// send output token if generated
if (outToken != null)
sendToken(outToken);
}