JMeter没有对WS-Security或WS-Trust的任何内置支持,这使我为JMeter开发了此STS Sampler –可以在负载测试STS时使任何人的生活变得更好。

首先,您需要拥有Apache JMeter发行版。 我正在使用v2.7。

然后,您可以从此处下载sts.sampler.zip –解压缩并将“ repo”目录直接复制到JMETER_HOME。 还将lib.ext目录中的所有jar都复制到JMETER_HOME / lib / ext。

就是这样-现在启动JMeter。

在您的线程组下–右键单击–并添加Java Request Sampler…

现在,选择org.wso2.apache.jmeter.sts.STSSampler作为类名–您将看到以下内容……

让我在这里简要解释一下-不同的参数名称到底是什么意思。

STS_End_Point:安全令牌服务的端点。 如果您使用的是WSO2 Identity Server随附的STS,则为https:// localhost:9443 / services / wso2carbon-sts

STS_Security_Policy: WS-Security Policy的位置–用于保护STS。 它可以是具有UsernameToken和Sign&Encryption的安全策略。

Applies_To:您要针对哪个服务使用从STS获得的此令牌,或者换句话说,令牌的范围。 这可以是STS已知的任何URI。 STS可以使用此URI查找该服务的公共密钥,并将使用该URI加密发布的密钥。 因此,无论您输入什么内容,都对您的STS有意义。

Token_Type:可以是以下任意一种…

1. http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0

2. http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1

Key_Type:可以是以下任意一种…

1. / SymmetricKey:请求对称密钥令牌(默认)

2. / PublicKey:请求公共密钥令牌

3. / Bearer:请求一个承载令牌。 请求者可以使用此密钥类型来指示他们想要发行不需要拥有证明的安全令牌。

Key_Size:密钥的大小。 默认情况下,它设置为256。这是一个整数元素,指示以位数表示的REQUIRED键的大小。

Claim_Dialect:已知的STS索赔方言。 这可用于将一组索赔组合在一起。

Required_Claims: STS已知的URI,指示所需的属性集。 这可以是逗号分隔的列表。

System_Trust_Store:当STS的URL在https上时–这表示JKS文件的位置,该文件包括与STS端点相对应的公共证书。

System_Trust_Store_Password:访问System_Trust_Store的密码

用户名:当使用UsernameToken安全策略保护STS时,这是必需的。 这是相应的用户名。

密码:与上述用户名对应的密码。

Encryption_Key_Store:当使用WS-Security加密保护STS时,这是必需的。 存储STS终结点公钥的JKS的位置。

Encryption_Key_Store_Password:与Encryption_Key_Store对应的密码。

Encryption_Key_Alias:来自Encryption_Key_Store的别名,对应于STS端点。 这有助于加载STS的公钥。

Signature_Key_Store:当使用WS-Security签名保护STS时,这是必需的。 存储STS客户端私钥的JKS的位置。

Signature_Key_Store_Password:与Signature_Key_Store对应的密码。

Signature_Key_Alias:来自Signature_Key_Store的别名,对应于STS客户端。 这有助于加载STS客户端的私钥。

Signature_Key_Password:与STS客户端的私钥相对应的密码。

以下是我用来加载WSO2 Identity Server附带的测试STS的示例配置。

参考:在Facile Login博客上,使用我们的JCG合作伙伴 Prabath Siriwardena 的WS-Trust / STS采样器扩展JMeter 。

翻译自: https://www.javacodegeeks.com/2012/07/extending-jmeter-with-ws-truststs.html