Mule Http 基本身份验证 - 在变量中设置用户名

标签 mule mule-studio httplistener

我已经为我的 mule flow 应用程序实现了 HTTP 基本身份验证。

它监听 HTTP,URI 为 http://localhost:8082/login .

<flow name="wsGetReport">
    <http:listener config-ref="HTTP_Listener_Configuration" path="${wsPath}" doc:name="HTTP"/>
    <logger level="INFO" message="## received" doc:name="Logger"/>
    <http:basic-security-filter realm="mule-realm"/>
    <flow-ref name="doSubFlow" doc:name="doSubFlow"/>     
    <logger level="INFO" message="## passed security" doc:name="Logger"/>
    <http:static-resource-handler resourceBase="${app.home}/classes" doc:name="HTTP Static Resource Handler" defaultFile="index.html"/>
</flow>

我将检索用户在登录时输入的用户名,并将其显示在 http 静态资源(一个 html 页面)中。

如何存储身份验证中使用的用户名?

谢谢。

最佳答案

您可以使用 mel 获取基本身份验证的用户和密码,如下所示,并将其存储到变量中:-

    <flow name="SpringBasicAuthExample">
       <http:listener config-ref="HTTP_Listener_Configuration" path="/security" doc:name="HTTP"/>
       <logger level="INFO" message="## received" doc:name="Logger"/>
       <http:basic-security-filter realm="mule-realm"/>    
       <set-payload value="#[message.inboundProperties.'Authorization']" doc:name="Set Payload"/>
       <set-payload value="#[message.payloadAs(java.lang.String).substring('Basic'.length()).trim()]" doc:name="Set Payload"/>
       <expression-transformer expression="#[String credentials = new String(org.mule.util.Base64.decode(payload),java.nio.charset.Charset.forName('UTF-8')); String[] values = credentials.split(':',2); flowVars.user= values[0]; flowVars.pass=values[1];]" doc:name="Expression"/>
       <set-payload value="#[['user':flowVars.user,'password':flowVars.pass]]" doc:name="Set Payload"/>
       <parse-template location="index.html" doc:name="Parse Template"/>
       <logger level="INFO" message="## passed security" doc:name="Logger"/>
  </flow>
</mule>

最后,您可以将用户名密码存储在变量中,并将该变量传递到html文件中以显示用户名动态使用 parse-template:- index.html:-

<html>
<body>
<b>UserName: #[flowVars.user]</b>
</body>
</html>

请注意您的index.html应该位于资源文件夹中。在这里,一旦您在变量中获得用户名,您就可以将其存储或传递到您希望的任何地方:)

关于Mule Http 基本身份验证 - 在变量中设置用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44777887/

相关文章:

mule - 有没有办法根据xml自动生成Mule mflow文件?

esb - Mule ESB 可以部署在 Application Server 中

java - Mule 2.2.1-HF5 兼容 Java 8

c# - HttpListener - 在没有停机的情况下在同一地址上无缝启动/停止?

Java Socket知道何时向gmail发出请求

foreach - 使用 Mule 的 foreach 作用域迭代数组

mule - 如何将自定义变压器放入变压器调色板

http - 有没有办法使用 Mule 的 HttpPollingConnector 轮询多个地址?

java - 从 Eclipse 运行 Mule 应用程序时出现 NoSuchMethodError 异常

c# - 套接字连接到局域网计算机失败?