public interface GSSContext
如果调用实例化的上下文中使用的默认GSSManager
实例,然后Kerberos V5接口机制保证可以使用上下文建立。这一机制是由老“1.2.840.113554.1.2.2“识别和RFC 1964中定义的。
在发起上下文创建阶段之前,上下文引发剂可以请求所建立的上下文所需的特定特性。并不是所有的相关机制都支持调用方所希望的所有特性。在建立上下文之后,调用方可以通过各种查询方法检查该上下文所提供的实际特性和服务。使用Kerberos V5接口机制默认GSSManager
实例提供的时候,所有可选服务将可在局部。他们是相互认证,认证授权,保密性和完整性保护,和每个消息重播检测和测序。注意,在接口、消息完整性是信息保密的前提。
背景发生在一个循环里建立发起者称initSecContext
和受体称acceptSecContext
直到建立上下文。而在这个循环的initSecContext
和acceptSecContext
方法产生的令牌,应用程序发送过来的同伴。同伴通过任何这样的令牌作为输入,其acceptSecContext
或initSecContext
可以视情况。
在建立阶段的背景下,isProtReady
方法可称为确定的情况下可用于每wrap
和getMIC
消息操作。这允许应用程序使用的每个信息操作环境尚未完全建立。
在已经建立的情况下或isProtReady
方法返回true
,查询例程可以调用确定建立上下文的实际特点和服务。该应用程序还可以使用每wrap
和getMIC
消息方法获得应用程序提供数据的加密操作。
当上下文不再需要时,应用程序应该调用dispose
释放上下文可以使用任何系统资源。
一个安全上下文通常保持对令牌的排序和重播检测信息的过程。因此,在该序列中,任何令牌提交给这种情况下,处理可能是重要的。还注意,在此接口中的方法没有同步。因此,它是不可取的几个线程之间共享GSSContext
除非一些应用水平同步到位。
最后,不同的机构服务供应商可能使用GSS-API背景的地方不同的安全限制。这些将被记录的机制提供商。该应用程序将需要确保它有适当的权限,如果这样的检查是在机制层。
示例代码下面演示的起始点GSSContext
接口的使用。在GSSContext
对象不同的操作方法,包括:对象实例,所需的旗帜,设置情境的建立,实际环境标志查询,每个消息的业务应用数据,最后语境缺失。
使用默认凭据创建上下文/ /和实施特定的默认机制gssmanager经理…gssname文件名称…gsscontext上下文=经理。createcontext(时,空,空,gsscontext indefinite_lifetime);在上下文建立之前设置所需的上下文选项背景requestconf(真正的);背景requestmutualauth(真正的);背景requestreplaydet(真正的);背景requestsequencedet(真正的);在同龄人之间建立一个背景intoken =新的字节字节[ ] [ 0 ];仍然有一个要处理的令牌的循环而(!背景。isestablished()){[ ] outtoken字节=背景。initseccontext(intoken,0,intoken。长度);如果生成的输出令牌如果(outtoken!= null)sendtoken(outtoken);如果(!背景。isestablished()){intoken = readtoken();}/显示上下文信息系统的输入(“剩余寿命秒=“+上下文getlifetime());系统的输入(“语境机制=”+背景。getmech());系统的输入(“始作俑者=”+背景。getsrcname());系统的输入(“受体=”+背景。gettargname());如果(上下文。getconfstate())系统的输入(“保密(即隐私)是可用的”);如果(上下文。getintegstate())系统的输入(“诚信”);/ /执行包在应用程序提供的消息,appmsg,/ /使用QOP = 0,并要求隐私服务[ ] appmsg字节…messageprop mprop =新messageprop(0,真的);字节[]铎=语境。包(appmsg,0,appmsg.length,mprop);sendtoken(TOK);/释放上下文的本地结束dispose()上下文;
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_LIFETIME
表示默认上下文生命值的生命值。
|
static int |
INDEFINITE_LIFETIME
表示不确定上下文生命期的终身常数。
|
Modifier and Type | Method and Description |
---|---|
byte[] |
acceptSecContext(byte[] inToken, int offset, int len)
在接收来自对等体的令牌的上下文中调用。
|
void |
acceptSecContext(InputStream inStream, OutputStream outStream)
由上下文接受程序调用来处理来自对等点的数据流的令牌。
|
void |
dispose()
释放任何系统资源和密码信息存储在上下文对象和无效的上下文。
|
byte[] |
export()
导出这个上下文,以便另一个进程可以导入它。
|
boolean |
getAnonymityState()
决定如果上下文发起者匿名认证上下文接受者。
|
boolean |
getConfState()
确定是否可以在上下文中使用数据保密性。
|
boolean |
getCredDelegState()
确定在这种情况下启用凭据委托是否启用。
|
GSSCredential |
getDelegCred()
获取由上下文引发剂委派给上下文受体的凭据。
|
boolean |
getIntegState()
确定是否可以在上下文中使用数据完整性。
|
int |
getLifetime()
确定这种情况下的剩余寿命是。
|
Oid |
getMech()
决定什么机制被用于这种情况下。
|
byte[] |
getMIC(byte[] inMsg, int offset, int len, MessageProp msgProp)
返回包含加密消息完整性代码(麦克风)的用于提供的消息的令牌,用于传输到对等应用程序。
|
void |
getMIC(InputStream inStream, OutputStream outStream, MessageProp msgProp)
使用流产生包含用于所提供的消息的加密麦克风的令牌,用于传输到对等应用程序。
|
boolean |
getMutualAuthState()
确定在这种情况下是否启用了相互验证。
|
boolean |
getReplayDetState()
确定是否启用从该上下文中的每个消息安全服务的重播检测。
|
boolean |
getSequenceDetState()
确定是否启用了从这个上下文中的每个消息安全服务的序列检查。
|
GSSName |
getSrcName()
返回上下文引发剂的名称。
|
GSSName |
getTargName()
返回上下文受体的名称。
|
int |
getWrapSizeLimit(int qop, boolean confReq, int maxTokenSize)
用来确定的信息,可以通过
wrap 大小限制。
|
byte[] |
initSecContext(byte[] inputBuf, int offset, int len)
由上下文语境引发剂开始创建阶段、处理任何由同行的
acceptSecContext 方法生成令牌。
|
int |
initSecContext(InputStream inStream, OutputStream outStream)
由上下文语境引发剂开始创建阶段和过程的任何利用流节点的
acceptSecContext 方法生成令牌。
|
boolean |
isEstablished()
用于在上下文建立过程中确定上下文的状态。
|
boolean |
isInitiator()
确定是否这是上下文引发剂。
|
boolean |
isProtReady()
确定是否已准备好用于在它上面使用的每个消息操作的上下文。
|
boolean |
isTransferable()
决定如果上下文转移到其他过程的
export 的使用方法。
|
void |
requestAnonymity(boolean state)
请不要将引发剂的身份泄露给受体。
|
void |
requestConf(boolean state)
请求数据的保密性是对
wrap 方法启用。
|
void |
requestCredDeleg(boolean state)
请求在上下文建立期间将引发剂的凭据授予给受体。
|
void |
requestInteg(boolean state)
要求数据的完整性是对
wrap 和
getMIC methods启用。
|
void |
requestLifetime(int lifetime)
在上下文中请求一个生命周期。
|
void |
requestMutualAuth(boolean state)
在上下文建立过程中要求相互验证的请求。
|
void |
requestReplayDet(boolean state)
上下文设置后请求对每个消息安全服务启用重播检测的请求。
|
void |
requestSequenceDet(boolean state)
上下文建立后请求序列检查为每个消息安全服务启用。
|
void |
setChannelBinding(ChannelBinding cb)
设置上下文设置期间要使用的信道绑定。
|
byte[] |
unwrap(byte[] inBuf, int offset, int len, MessageProp msgProp)
用于处理标记的方法产生的背景
wrap 在另一边。
|
void |
unwrap(InputStream inStream, OutputStream outStream, MessageProp msgProp)
使用流处理标记的方法产生的背景
wrap 在另一边。
|
void |
verifyMIC(byte[] inToken, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp)
验证所提供的消息的令牌参数中包含的密码麦克风。
|
void |
verifyMIC(InputStream tokStream, InputStream msgStream, MessageProp msgProp)
使用流来验证在所提供的消息中包含的令牌参数中的密码麦克风。
|
byte[] |
wrap(byte[] inBuf, int offset, int len, MessageProp msgProp)
应用在已建立的安全上下文中的每个消息安全服务。
|
void |
wrap(InputStream inStream, OutputStream outStream, MessageProp msgProp)
在已建立的安全上下文中使用流的每个消息安全服务。
|
static final int DEFAULT_LIFETIME
static final int INDEFINITE_LIFETIME
Integer.MAX_VALUE
。
byte[] initSecContext(byte[] inputBuf, int offset, int len) throws GSSException
acceptSecContext
方法生成令牌。这种方法可能会返回一个输出标记的应用程序将需要发送的
acceptSecContext
方法加工点。应用程序可以调用
isEstablished
确定上下文建立阶段的背景这一边完成。从
isEstablished
的
false
返回值表明更多的令牌将被提供给
initSecContext
。在完成上下文设置后,可用的上下文选项可以通过获取方法进行查询。
请注意,这是可能的,initSecContext
方法返回一个节点的令牌,并isEstablished
返回true
也。这表明,令牌需要发送给对等体,但上下文的本地结束现在已完全建立。
一些机制提供方可能要求调用方授予启动安全上下文的权限。一个失败的权限检查可能导致SecurityException
是从这个方法引发。
inputBuf
令牌的节点生成。此参数在第一次调用时被忽略,因为没有从对等点接收到令牌。
offset
在令牌开始在inputbuf偏移。
len
-令牌的长度。
null
表明没有产生令牌。
GSSException
含有以下主要错误代码:
GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.BAD_BINDINGS
,
GSSException.OLD_TOKEN
,
GSSException.DUPLICATE_TOKEN
,
GSSException.BAD_NAMETYPE
,
GSSException.BAD_MECH
,
GSSException.FAILURE
int initSecContext(InputStream inStream, OutputStream outStream) throws GSSException
acceptSecContext
方法生成令牌。这种方法可以写一个输出标记的
OutpuStream
,该应用程序将需要发送的
acceptSecContext
呼叫处理同行。通常,应用程序将确保这一
OutputStream
封装的两个节点之间的连接
flush
方法调用。应用程序可以确定一个令牌写入从该方法的返回值的输出流。一个
0
返回值表示没有令牌是写。应用程序可以调用
isEstablished
确定上下文建立阶段的背景这一边完成。从
isEstablished
的
false
返回值表明更多的令牌将被提供给
initSecContext
。在完成上下文设置后,可用的上下文选项可以通过获取方法进行查询。
请注意,这是可能的,initSecContext
方法返回一个节点的令牌,并isEstablished
返回true
也。这表明,令牌需要发送给对等体,但上下文的本地结束现在已完全建立。
GSS-API认证令牌包含一个明确的开始和结束。此方法将尝试读取每一个调用的这些标记之一,并可能会在流上,如果只有一部分的令牌是可用的。在其他方面,这种方法相当于字节数组的基础initSecContext
。
一些机制提供方可能要求调用方授予启动安全上下文的权限。一个失败的权限检查可能导致SecurityException
是从这个方法引发。
下面的示例代码演示了如何使用这种方法:
InputStream是…OutputStream OS…gsscontext语境…仍然有一个要处理的令牌的循环而(!背景。isestablished()){背景initseccontext(是,OS);如果生成的话/发送输出令牌flush() OS;}
inStream
- InputStream,包含由同伴产生的令牌。此参数在第一次调用时被忽略,因为没有令牌已经或将从对等点接收到该点。
outStream
- OutputStream在输出的令牌将被写入。在上下文建立的最后阶段,可能没有被写入的字节。
GSSException
含有以下主要错误代码:
GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.BAD_BINDINGS
,
GSSException.OLD_TOKEN
,
GSSException.DUPLICATE_TOKEN
,
GSSException.BAD_NAMETYPE
,
GSSException.BAD_MECH
,
GSSException.FAILURE
byte[] acceptSecContext(byte[] inToken, int offset, int len) throws GSSException
initSecContext
呼吁进一步处理同行。
应用程序可以调用isEstablished
确定上下文建立阶段完成该对等。从isEstablished
的false
返回值表明更多的令牌将被提供给该方法。在完成上下文设置后,可用的上下文选项可以通过获取方法进行查询。
请注意,这是可能的,acceptSecContext
返回一个同行令牌,和isEstablished
返回true
也。这表明,令牌需要发送给对等体,但上下文的本地结束现在已完全建立。
一些机制提供方可能要求调用方授予接受安全上下文的权限。一个失败的权限检查可能导致SecurityException
是从这个方法引发。
下面的示例代码演示了如何使用这种方法:
[ ] intoken字节;[ ] outtoken字节;gsscontext语境…仍然有一个要处理的令牌的循环而(!背景。isestablished()){intoken = readtoken();outtoken =背景。acceptseccontext(intoken,0,intoken长度);如果生成的话/发送输出令牌如果(outtoken!= null)sendtoken(outtoken);}
inToken
令牌的节点生成。
offset
-。
len
-令牌的长度。
null
表明没有产生令牌。
GSSException
含有以下主要错误代码:
GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.BAD_BINDINGS
,
GSSException.OLD_TOKEN
,
GSSException.DUPLICATE_TOKEN
,
GSSException.BAD_MECH
,
GSSException.FAILURE
void acceptSecContext(InputStream inStream, OutputStream outStream) throws GSSException
OutputStream
,该应用程序将需要发送的
initSecContext
方法加工点。通常,应用程序将确保这一
OutputStream
封装的两个节点之间的连接
flush
方法调用。应用程序可以调用
isEstablished
确定上下文建立阶段的背景这一边完成。从
isEstablished
的
false
返回值表明更多的令牌将被提供给
acceptSecContext
。在完成上下文设置后,可用的上下文选项可以通过获取方法进行查询。
请注意,这是可能的,acceptSecContext
返回一个同行令牌,和isEstablished
返回true
也。这表明,令牌需要发送给对等体,但上下文的本地结束现在已完全建立。
GSS-API认证令牌包含一个明确的开始和结束。此方法将尝试读取每一个调用的这些标记之一,并可能会在流上,如果只有一部分的令牌是可用的。在其他方面,这种方法相当于字节数组的基础acceptSecContext
。
一些机制提供方可能要求调用方授予接受安全上下文的权限。一个失败的权限检查可能导致SecurityException
是从这个方法引发。
下面的示例代码演示了如何使用这种方法:
InputStream是…OutputStream OS…gsscontext语境…仍然有一个要处理的令牌的循环而(!背景。isestablished()){背景acceptseccontext(是,OS);如果生成的话/发送输出令牌flush() OS;}
inStream
- InputStream,包含由同伴产生的令牌。
outStream
- OutputStream在输出的令牌将被写入。在上下文建立的最后阶段,可能没有被写入的字节。
GSSException
:
GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.BAD_BINDINGS
,
GSSException.OLD_TOKEN
,
GSSException.DUPLICATE_TOKEN
,
GSSException.BAD_MECH
,
GSSException.FAILURE
boolean isEstablished()
true
语境对来电者的身边,没有更多的令牌是来自同伴的需要。
void dispose() throws GSSException
GSSException
含有以下主要错误代码:
GSSException.FAILURE
int getWrapSizeLimit(int qop, boolean confReq, int maxTokenSize) throws GSSException
wrap
大小限制。返回的最大邮件大小,如果到了
wrap
方法具有相同的
confReq
和
qop
参数,将导致含有不超过
maxTokenSize
字节输出令牌。
此调用旨在用于通信的应用程序的应用程序,该应用程序将执行最大消息大小的协议进行通信使用。它使应用程序在应用保护之前的碎片消息。
GSS-API实现建议但不要求检测无效控制值时,getWrapSizeLimit
叫做。这个程序保证只有一个最大消息大小,不是消息保护特定值的有效性控制。
qop
-保护包装水平将被要求提供。
confReq
-
true
如果包将被要求提供隐私,
false
否则。
maxTokenSize
-发出的包裹令牌所需的最大尺寸。
GSSException
含有以下主要错误代码:
GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
byte[] wrap(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException
的messageprop对象是由应用程序和用于指定一个QOP价值选择加密算法实例,和隐私服务可选加密消息。在调用中使用的底层机制可能无法提供隐私服务。它集实际的隐私服务,它提供了在这messageprop对象,调用者将查询返回后。如果机构不能提供所要求的控制,它抛出一个gssexception与bad_qop代码。
由于某些应用程序级别的协议可能希望使用包发出的令牌提供“安全框架”,实现应该支持零长度消息的包装。
该应用程序将负责向对等点发送令牌。
inBuf
应用数据得到保护。
offset
-在哪里的数据开始inbuf偏移。
len
-数据的长度
msgProp
- messageprop实例所使用的应用程序设置所需的QOP和隐私状态。设置所需的QOP 0请求默认QOP。当从这个方法返回时,这个对象将包含被应用到消息的实际的隐私状态,通过下面的机制。
GSSException
:
GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
void wrap(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
wrap
方法。
该应用程序将负责向对等点发送令牌。通常,应用程序将确保这一OutputStream
封装的两个节点之间的连接flush
方法调用。
的messageprop对象是由应用程序和用于指定一个QOP价值选择加密算法实例,和隐私服务可选加密消息。在调用中使用的底层机制可能无法提供隐私服务。它集实际的隐私服务,它提供了在这messageprop对象,调用者将查询返回后。如果机构不能提供所要求的控制,它抛出一个gssexception与bad_qop代码。
由于某些应用程序级别的协议可能希望使用包发出的令牌提供“安全框架”,实现应该支持零长度消息的包装。
inStream
- InputStream是包含应用程序数据保护。所有在河道内的可用数据的使用。
outStream
- OutputStream写保护信息。
msgProp
- messageprop实例所使用的应用程序设置所需的QOP和隐私状态。设置所需的QOP 0请求默认QOP。当从这个方法返回时,这个对象将包含被应用到消息的实际的隐私状态,通过下面的机制。
GSSException
含有以下主要错误代码:
GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
byte[] unwrap(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException
wrap
在另一边。该方法将返回由对等应用程序提供的消息到它的总结调用,同时在同一时间验证该消息的嵌入式麦克风。
的messageprop对象是由应用程序实例化,通过机制用于返回给调用者如QOP信息保密性,是否适用于信息和其他辅助信息状态信息。
由于一些应用程序级的协议可能希望使用的包装发出的包装提供“安全的框架”,实现应该支持零长度的消息的包装和展开。
inBuf
-含收到来自同伴的包标记的字节数组。
offset
-令牌开始的偏移量。
len
-令牌的长度
msgProp
-在从方法返回时,该对象将包含应用QOP,消息的保密状态,和补充信息说明如果令牌是一个重复的,旧的,无序或抵达后间隙。
GSSException
含有以下主要错误代码:
GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.CONTEXT_EXPIRED
,
GSSException.FAILURE
void unwrap(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
wrap
在另一边。该方法将返回由对等应用程序提供的消息到它的总结调用,同时在同一时间验证该消息的嵌入式麦克风。
的messageprop对象是由应用程序实例化,通过机制用于返回给调用者如QOP信息保密性,是否适用于信息和其他辅助信息状态信息。
由于一些应用程序级的协议可能希望使用的包装发出的包装提供“安全的框架”,实现应该支持零长度的消息的包装和展开。
此方法读取的输入标记的格式在将被使用的底层机制的规范中定义。此方法将尝试读取每一个调用的这些标记之一。如果机制令牌包含一个明确的开始和结束这种方法可能会阻止在InputStream
如果只有部分可用的令牌。如果令牌的开始和结束是不确定的,那么该方法将尝试处理所有可用的字节作为令牌的一部分。
除了可能阻止上述行为,这种方法相当于字节数组的基础unwrap
方法。
inStream
- InputStream,包含由同伴产生的包标记。
outStream
- OutputStream编写应用程序的消息。
msgProp
-在从方法返回时,该对象将包含应用QOP,消息的保密状态,和补充信息说明如果令牌是一个重复的,旧的,无序或抵达后间隙。
GSSException
含有以下主要错误代码:
GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.CONTEXT_EXPIRED
,
GSSException.FAILURE
byte[] getMIC(byte[] inMsg, int offset, int len, MessageProp msgProp) throws GSSException
请注意,隐私只能通过调用调用应用。
由于一些应用层协议可以使用令牌发出getmic提供“安全框架”,实现应该从零长度的信息推导麦克风支持。
inMsg
-消息生成MIC在。
offset
-。
len
-消息的长度
msgProp
-
MessageProp
是通过设定所需控制的应用实例。设置所需的QOP来
0
在
msgProp
请求默认QOP。另外通过对
msgProp
null
请求默认QOP。
GSSException
含有以下主要错误代码:
GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
void getMIC(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
getMIC
方法。请注意,隐私只能通过调用调用应用。
由于一些应用层协议可以使用令牌发出getmic提供“安全框架”,实现应该从零长度的信息推导麦克风支持。
inStream
- InputStream含有消息生成的MIC在。所有在河道内的可用数据的使用。
outStream
- OutputStream写入输出令牌。
msgProp
-
MessageProp
是通过设定所需控制的应用实例。设置所需的QOP来
0
在
msgProp
请求默认QOP。另外通过对
msgProp
null
请求默认QOP。
GSSException
含有以下主要错误代码:
GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
void verifyMIC(byte[] inToken, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp) throws GSSException
的messageprop对象是由应用程序实例化,通过机制用于返回给调用者如QOP指示保护强度,应用于信息和其他辅助信息状态信息。
由于一些应用层协议可以使用令牌发出getmic提供“安全框架”,实现应该支持零长度信息的MIC的计算与验证。
inToken
的同伴的getmic方法生成的令牌。
tokOffset
在令牌开始在intoken偏移。
tokLen
-令牌的长度。
inMsg
-应用程序消息验证密码MIC在。
msgOffset
- inmsg消息开始在偏移。
msgLen
-消息的长度。
msgProp
-在从方法返回时,该对象将包含应用QOP和补充信息说明如果令牌是一个重复的,旧的,无序或抵达后间隙。
GSSException
含有以下主要错误代码:
GSSException.DEFECTIVE_TOKEN
GSSException.BAD_MIC
GSSException.CONTEXT_EXPIRED
GSSException.FAILURE
void verifyMIC(InputStream tokStream, InputStream msgStream, MessageProp msgProp) throws GSSException
verifyMIC
方法。的messageprop对象是由应用程序实例化,通过机制用于返回给调用者如QOP指示保护强度,应用于信息和其他辅助信息状态信息。
由于一些应用层协议可以使用令牌发出getmic提供“安全框架”,实现应该支持零长度信息的MIC的计算与验证。
此方法读取的输入标记的格式在将被使用的底层机制的规范中定义。此方法将尝试读取每一个调用的这些标记之一。如果机制令牌包含一个明确的开始和结束这种方法可能会阻止在InputStream
如果只有部分可用的令牌。如果令牌的开始和结束是不确定的,那么该方法将尝试处理所有可用的字节作为令牌的一部分。
除了可能阻止上述行为,这种方法相当于字节数组的基础verifyMIC
方法。
tokStream
- InputStream含有由同行的getmic方法生成的令牌。
msgStream
- InputStream包含应用程序消息验证密码MIC在。所有这一切都在msgstream可用数据的使用。
msgProp
-在从方法返回时,该对象将包含应用QOP和补充信息说明如果令牌是一个重复的,旧的,无序或抵达后间隙。
GSSException
含有以下主要错误代码:
GSSException.DEFECTIVE_TOKEN
GSSException.BAD_MIC
GSSException.CONTEXT_EXPIRED
GSSException.FAILURE
byte[] export() throws GSSException
这种方法使安全上下文令牌,并创建一个进程,当传递给另一个进程GSSManager.createContext
,将重新激活第二进程上下文。只有一个单一的实例化一个给定的情况下,可以在任何一个时间活动;随后尝试通过上下文出口商出口安全上下文访问会失败。
实施限制的进程令牌可以进口流程的设置,无论是作为一个本地安全策略功能,或由于实施决策。例如,一些实现可能会限制在同一个帐户下运行的进程之间的上下文,或是同一个进程组的一部分。
进程令牌可能包含安全敏感信息(例如密码钥匙)。而机制鼓励避免放置等敏感信息在进程令牌,或加密令牌然后返回到应用程序,在一个典型的GSS-API实现这可能是不可能的。因此,应用程序必须注意保护进程令牌,并确保任何进程令牌的传递是值得信赖的。
实现不需要支持安全上下文的进程间传输。调用isTransferable
方法将表明,如果上下文对象是可转让的。
在一个背景下,是无法输出调用此方法将导致此异常被抛出的错误代码GSSException.UNAVAILABLE
。
GSSException
含有以下主要错误代码:
GSSException.UNAVAILABLE
,
GSSException.CONTEXT_EXPIRED
,
GSSException.NO_CONTEXT
,
GSSException.FAILURE
GSSManager.createContext(byte[])
void requestMutualAuth(boolean state) throws GSSException
initSecContext
第一次调用前完成。
不是所有的机制,支持双向认证和一些机构甚至如果应用程序不需要相互验证,应用程序应该检查是否要求很荣幸与getMutualAuthState
方法。
state
-一个布尔值,指示是否应使用或不相互认证。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
getMutualAuthState()
void requestReplayDet(boolean state) throws GSSException
initSecContext
第一次调用前完成。上下文建立重放检测时是不是一种选择,是一个潜在的机制的功能。
不是所有的机制支持重放检测和一些机构甚至如果应用程序不需要重放检测,应用程序应该检查是否要求很荣幸与getReplayDetState
方法。如果重放检测启用然后MessageProp.isDuplicateToken
和MessageProp.isOldToken
方法将返回被传递到unwrap
法或verifyMIC
方法MessageProp
对象有效的结果。
state
-一个布尔值,指示是否应在重放检测启用了上下文或不。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
getReplayDetState()
void requestSequenceDet(boolean state) throws GSSException
initSecContext
做。在上下文建立序列检查是不是一个选项,是一个功能的基本机制的能力。
不是所有的机制支持序列检查和一些机构可能需要序列检查即使应用程序没有。因此,应用程序应检查是否要求很荣幸与getSequenceDetState
方法。如果启用,则MessageProp.isDuplicateToken
序列检查,MessageProp.isOldToken
,MessageProp.isUnseqToken
,和MessageProp.isGapToken
方法将返回被传递到unwrap
法或verifyMIC
方法MessageProp
对象有效的结果。
state
-一个布尔值,指示是否启用序列检查应在建立上下文或不。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
getSequenceDetState()
void requestCredDeleg(boolean state) throws GSSException
initSecContext
做。并不是所有的机制都支持凭据委托。因此,希望代表团应该看看的请求很荣幸与
getCredDelegState
方法中的应用。如果应用程序表明,代表团不能使用,那么该机制将尊重请求和代表团不会发生。这是一个例外,一般规则,一个机制可能使服务,即使它没有要求。
state
-一个布尔值,指示是否应委托或没有凭据。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
getCredDelegState()
void requestAnonymity(boolean state) throws GSSException
initSecContext
做。并非所有的机制都支持匿名的引发剂。因此,应用程序应检查是否要求很荣幸与
getAnonymityState
方法。
state
-一个布尔值,指示是否应验证引发剂对受体作为匿名委托。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
getAnonymityState()
void requestConf(boolean state) throws GSSException
wrap
方法启用。这要求只能在语境引发的身边,这已经成为第一个电话之前,
initSecContext
做。并非所有的机制都支持保密性和其他机制,即使应用程序不请求它,它也可能启动它。应用程序可以查看请求很荣幸与
getConfState
方法。如果保密功能,只有将机制荣誉,传递给
wrap
方法
MessageProp
对象隐私的要求。
启用保密性也将自动启用完整性。
state
-一个布尔值,指示是否应启用或不保密。
GSSException
GSSException.FAILURE
错误代码:
getConfState()
,
getIntegState()
,
requestInteg(boolean)
,
MessageProp
void requestInteg(boolean state) throws GSSException
wrap
和
getMIC
methods启用。这要求只能在语境引发的身边,这已经成为第一个电话之前,
initSecContext
做。并非所有的机制都支持完整性和其他机制,即使应用程序不请求它,它也可能启动它。应用程序可以查看请求很荣幸与
getIntegState
方法。
禁用完整性也将自动禁用保密性。
state
-一个布尔值,指示是否应启用或不完整。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
getIntegState()
void requestLifetime(int lifetime) throws GSSException
initSecContext
做。
语境的实际寿命将取决于潜在的机制和应用的能力,应该叫getLifetime
法确定这。
lifetime
-预期寿命在几秒钟内语境。使用
INDEFINITE_LIFETIME
要求无限的寿命和
DEFAULT_LIFETIME
请求一个默认的一生。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
getLifetime()
void setChannelBinding(ChannelBinding cb) throws GSSException
initSecContext
和受体称它必须在
acceptSecContext
第一调用它。
cb
-信道绑定使用。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
boolean getCredDelegState()
requestCredDeleg
方法将荣誉要求,此方法将返回对引发的副
false
从那时起。
requestCredDeleg(boolean)
boolean getMutualAuthState()
requestMutualAuth(boolean)
boolean getReplayDetState()
requestReplayDet(boolean)
boolean getSequenceDetState()
requestSequenceDet(boolean)
boolean getAnonymityState()
initSecContext
迄今产生的披露。引发剂,绝对必须认证匿名应调用此方法后,每次调用initSecContext
确定生成令牌应送交同行或上下文中止。,调用此方法来确定是否有任何的令牌进行
acceptSecContext
迄今已泄露的发起者的身份。
requestAnonymity(boolean)
boolean isTransferable() throws GSSException
export
的使用方法。此调用仅在完全建立的上下文中有效。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
boolean isProtReady()
wrap
,
unwrap
,
getMIC
真实,和
verifyMIC
可用于这种情况下的上下文建立的现阶段,否则为假。
boolean getConfState()
isProtReady
或
isEstablished
返回
true
。如果这个方法返回
true
,所以将
getIntegState
requestConf(boolean)
boolean getIntegState()
isProtReady
或
isEstablished
返回
true
。该方法总是返回true如果
getConfState
返回
true
。
requestInteg(boolean)
int getLifetime()
isEstablished
返回真叫。
requestLifetime(int)
GSSName getSrcName() throws GSSException
GSSException
含有以下主要错误代码:
GSSException.FAILURE
GSSName
GSSName getTargName() throws GSSException
GSSException
含有以下主要错误代码:
GSSException.FAILURE
Oid getMech() throws GSSException
GSSException
含有以下主要错误代码:
GSSException.FAILURE
GSSCredential getDelegCred() throws GSSException
getCredDelegState
以确定是否有授权证书。
null
没有凭据委派。
GSSException
含有以下主要错误代码:
GSSException.FAILURE
boolean isInitiator() throws GSSException
GSSException
含有以下主要错误代码:
GSSException.FAILURE
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.