<element name="Identity">
<complexType>
<sequence>
<element name="SupportedTokens" type="secpol:SupportedTokensType" minOccurs="0"/>
</sequence>
</complexType>
</element>
<complexType name="SupportedTokensType">
<sequence>
<element name="SecurityToken" type="secpol:SecurityTokenType" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="SecurityTokenType">
<sequence>
<xsd:any namespace="##any" processContents="skip" minOccurs="0"/>
</sequence>
<attribute name="TokenType" type="xsd:anyURI"/>
<attribute name="IncludeInMessage" type="xsd:boolean"/>
<xsd:anyAttribute/>
</complexType>
SupportedTokens元素列出了身份验证所支持的所有可能令牌。SecurityToken元素指定了令牌类型,以及是否要将令牌本身包含在SOAP消息中。对于身份验证,最常见的用例是包含身份令牌。SupportedTokens元素可以在断言中省略。我们称这种断言为抽象(abstract),因为在这种情况下,当从服务URL请求策略时,SupportedTokens元素必须补上。这允许在服务器端动态配置身份验证令牌。参见电子文档,获取更多关于抽象策略这个概念的信息。WebLogic Server 9.0内置的支持令牌是UsernameToken、BinarySecurityToken(X.509)和SAML Token 1.1。
<wssp:Identity> <!-- Use UsernameToken for authentication --> <wssp:SupportedTokens> <wssp:SecurityToken IncludeInMessage="true" TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken"> <wssp:UsePassword Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"/> </wssp:SecurityToken> </wssp:SupportedTokens> </wssp:Identity>
在上面的例子中,UsernameToken被设置为支持的身份验证令牌,其口令类型为无格式文本。WebLogic Server 9.0提供一个开箱即用的固定策略,Auth.xml。
<?xml version="1.0"?>
<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
>
<wssp:Identity/>
</wsp:Policy>
这是一个抽象策略。当配置服务器支持口令摘要(digest)或x.509进行身份验证时,该策略会自动表示,在web服务部署时,何时会补上SupportedTokens元素。例如:
@Policy(uri="policy:Auth.xml", direction=Policy.Direction.inbound) public class HelloWorldService { //... } 当web服务客户机从HelloWorldService检索动态WSDL时,wsdl:definitions会嵌入以下策略:
<wsdl:definitions>
<wsp:UsingPolicy Required="true"/>
<wsp:Policy Id="Auth.xml>
<wssp:Identity>
<wssp:SupportedTokens>
<wssp:SecurityToken TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">
</wssp:SecurityToken>
</wssp:SupportedTokens>
</wssp:Identity>
</wsp:Policy>
</wsdl:definitions>
原文出处: http://dev2dev.bea.com/blog/jlee/archive/2005/09/wls_wssecurityp_1.html