当前位置: 首页 > 知识库问答 >
问题:

在XSLT 2.0中使用未解析文本时,指定HTTP身份验证的凭据

容修贤
2023-03-14

我发现您可以使用XSLT 2.0中的unparsed-text函数通过HTTP获取文本文件。效果很好,但我需要获取的文件需要基本的HTTP身份验证。尝试了以下方法,但似乎没有任何区别。

<variable name="text" select="unparsed-text('http://test:1234@localhost/file.txt')" />

在使用此未解析文本功能时,是否可以指定要使用的凭据?

共有2个答案

娄丁雨
2023-03-14

作为使用扩展函数的替代方法,您可以使用Saxon注册一个UnparsedTextURIResolver来处理URI取消引用。

常永长
2023-03-14

经过一点研究,我很有信心它只能通过一个扩展函数来适当地处理HTTP请求。换句话说,正如您所注意到的那样,单独使用unparsed-text()将无法实现任何目标。

在我看来,Florent Georges编写的扩展函数可以满足您的需要。下面的代码不是我自己的,我根据网站上的一个示例改编了它。

这是一个具有基本身份验证的删除请求示例。这适用于document()unparsed-text()

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ex="java:org.fgeorges.xslt.Exslt2"
                exclude-result-prefixes="ex"
                version="2.0">

   <!-- Parameters: the user (default to admin), the password
        (required) and the document to delete. -->
   <xsl:param name="user" select="'test'"/>
   <xsl:param name="pwd" required="yes"/>
   <xsl:param name="doc" select="'/file.txt'"/>

   <!-- The URI to be resolved -->
   <xsl:variable name="uri" select="
       'http://localhost'"/>

   <!-- The HTTP request -->
   <xsl:variable name="request">
      <http-request
          method="delete"
          user="{ $user }"
          password="{ $pwd }"/>
   </xsl:variable>

   <!-- The main template -->
   <xsl:template match="/" name="initial">
      <xsl:variable name="res" select="
          ex:http-send($request, concat($uri, $doc))"/>
     <!--Further processing-->
   </xsl:template>

</xsl:stylesheet>

我确信这些扩展是否仍然可以用于Saxon的最新版本。也许您应该改用EXPath HTTP客户端,这与上面描述的扩展非常相似。

 类似资料:
  • 我试图在一个反应式Spring Boot应用程序中配置一个Spring Security性,该应用程序具有一个Vuejs前端,在未经身份验证时将用户重定向到外部OpenID提供程序(用于身份验证)。在用户通过OpenID提供程序进行身份验证并重定向回应用程序(前端)后,将根据OpenID提供程序的响应创建用户名密码身份验证令牌(身份验证),并手动进行身份验证。 但是,在执行此操作时,应用程序似乎无

  • 问题内容: 如何在Golang网站上实施基本身份验证?这样,当有人访问某个页面时,他们的 浏览器 会提示他们登录。 问题答案: 为了强制用户进行身份验证/在用户浏览器中显示基本身份验证提示,请发送标头 因此,如果您有通话,您可以 这将导致浏览器打开您所指的提示。

  • 我对社交网络分析和twitter api是新手。我想收集关于特定主题的tweets。所以我写了下面的代码 在我的程序中,我需要在哪里提供凭据 谢谢

  • 问题内容: 我想写书,所使用的一个一个的NodeJS REST的API服务器Joyent的,并且一切正常,除了我无法验证普通用户的身份验证。如果我跳到终端并执行,则无法在NodeJS http服务器上获取值username:password。如果我的NodeJS http服务器类似于 ,是否应该在来自回调的 req 对象中某处获取值username:password ?如何获得这些值而不必使用Co

  • 问题内容: 我对HTTPS和HTTP身份验证凭据有疑问。 假设我使用HTTP身份验证来保护URL: 然后,我通过HTTPS从远程系统访问该URL,并在URL中传递凭据: https://gooduser:secretpassword@www.example.com/webcallback?foo=bar 用户名和密码会自动进行SSL加密吗?GET和POST是否一样?我很难用此信息来找到可靠的来源。

  • 问题内容: 我已经使用JAX-RS,Jersey和Grizzly编写了一个简单的REST服务器。这是我启动服务器的方式: 现在,我需要使用基本HTTP身份验证来保护资源,而且我不知道该怎么做。 如果可以更轻松地使它工作,我可以从Grizzly切换到Jetty,但是我确实很看重Grizzly提供的简单配置/启动。 我读了很多教程。他们都提到了web.xml,但是在我当前的配置中我没有一个。(我需要为