美文网首页
第十九章 添加时间戳和用户名令牌 - 时间戳和用户名令牌示例

第十九章 添加时间戳和用户名令牌 - 时间戳和用户名令牌示例

作者: Cache技术分享 | 来源:发表于2024-09-07 08:57 被阅读0次

第十九章 添加时间戳和用户名令牌 - 时间戳和用户名令牌示例

时间戳和用户名令牌示例

此示例显示了一个需要密码验证的 Web 服务,以及一个在其请求消息中发送时间戳和用户名令牌的 Web 客户端。

注意:此示例以明文形式发送用户名和密码。

为了使此示例在自己的环境中运行,请首先执行以下操作:

  • 对于 Web 服务所属的 Web 应用程序,将该应用程序配置为仅支持密码验证:
  1. 从管理门户主页,选择系统管理 > 安全 > 应用程序 > Web 应用程序。
  2. 选择 Web 应用程序。
  3. 仅选择密码选项,然后选择保存。
  • 如果不使用默认设置,请编辑客户端以使用适当的 IRIS 用户名和密码。

Web服务如下:

Class Tokens.DivideWS Extends %SOAP.WebService
{

Parameter SECURITYIN = "REQUIRE";

///  Name of the Web service.
Parameter SERVICENAME = "TokensDemo";

///  SOAP namespace for the Web service
Parameter NAMESPACE = "http://www.myapp.org";

///  Divide arg1 by arg2 and return the result. In case of error, call ApplicationError.
Method Divide(arg1 As %Numeric = 2, arg2 As %Numeric = 8) As %Numeric [ WebMethod ]
{
  Try {
      Set ans=arg1 / arg2
      }Catch{
      Do ..ApplicationError("division error")
      }
  Quit ans
}

///  Create our own method to produce application specific SOAP faults.
Method ApplicationError(detail As %String)
{
    //details not shown here
}

}

以下客户端类调用代理客户端(此处未显示)并添加用户名令牌:

Include %systemInclude

Class TokensClient.UseClient
{

ClassMethod Test() As %Numeric
{
  Set client=##class(TokensClient.TokensDemoSoap).%New()
  
  Do ..AddSecElements(.client)
  Set ans=client.Divide(1,2)
  
  Quit ans
}

ClassMethod AddSecElements(ByRef client As %SOAP.WebClient)
{
   Set utoken=##class(%SOAP.Security.UsernameToken).Create("_SYSTEM","SYS")
   Do client.SecurityOut.AddSecurityElement(utoken)

   Set ts=##class(%SOAP.Security.Timestamp).Create()
   Do client.SecurityOut.AddSecurityElement(ts) 
   Quit
}

}

来自该客户端的示例消息如下:

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope [parts omitted]>
  <SOAP-ENV:Header>
   <Security xmlns="[parts omitted]oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <Timestamp xmlns="[parts omitted]oasis-200401-wss-wssecurity-utility-1.0.xsd">
         <Created>2010-03-12T20:18:03Z</Created>
         <Expires>2010-03-12T20:23:03Z</Expires>
      </Timestamp>
      <UsernameToken>
         <Username>_SYSTEM</Username>
         <Password 
          Type="[parts omitted]#PasswordText">
            SYS
         </Password>
      </UsernameToken>
      </Security>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      [omitted]
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

相关文章

  • 'openstack stack list' 背

    1 通过用户名密码换令牌 收到,令牌在X-Subject-Token里。 2 要stack的列表 收到 和命令行对...

  • 加密登录和传输数据

    加密登录和传输数据 整个过程如下: 1、用户名密码 + https + url签名(url+时间戳+随机字串)...

  • Linux 用户、组和权限

    一、token 1. 定义 令牌,当用户通过用户名和密码通过系统用户数据库,成功登录系统后,系统会颁发一个令牌给用...

  • APP登录Token

    在计算机身份认证中是令牌(临时)的意思。 APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,...

  • 用户认证

    what? 用户认证是鉴别用户身份的过程,它通常使用标识符(用户名/有消息)和加密令牌(密码/存取令牌)来鉴别用户...

  • php自定义token及验证

    生成token //用户名、此时的时间戳,并将过期时间拼接在一起 $admin = $data['username...

  • 第五章 来自复杂对象的Token

    一种非常常见的设置是将用户信息(用户名、密码、角色等)存储在数据库中。现在,假设我们要创建一个访问令牌,其中令牌标...

  • 音视频时间戳计算

    时间戳 时间戳分为解码时间戳(DTS)和显示时间戳(PTS) 分别表示某一帧解码和显示相对于起始时间的时间戳通常来...

  • 令牌撤销 Endpoint

    layout: docs-default 令牌撤销 这个endpoint用来撤销访问令牌(仅参考令牌)和更新令牌。...

  • 通过js传参跳转

    添加时间戳 页面跳转方法和为了禁用浏览器缓存在地址后面加上事件戳

网友评论

      本文标题:第十九章 添加时间戳和用户名令牌 - 时间戳和用户名令牌示例

      本文链接:https://www.haomeiwen.com/subject/rnijljtx.html