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

Mule Http基本身份验证-在变量中设置用户名,mule,mule-studio,httplistener,Mule,Mule Studio,Httplistener,我已经为我的mule flow应用程序实现了HTTP基本身份验证 它在HTTP上侦听,URI为 我将检索用户在登录中键入的用户名,并将其显示在http静态资源(html页面)中 如何存储身份验证中使用的用户名 谢谢。看一看。Spring Framework就是这样做的。您可以使用mel获取基本身份验证的用户和密码,如下所示,并将其存储在变量中:- <flow name="SpringBasicAuthExample"> <http:listener c

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

它在HTTP上侦听,URI为


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

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


谢谢。

看一看。Spring Framework就是这样做的。

您可以使用
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>

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

您可以通过基本身份验证获得用户名和密码,如下所示:

<set-session-variable variableName="userInfo" value="#[org.mule.util.StringUtils.split(new String(org.mule.util.Base64.decode(message.inboundProperties.'Authorization'.substring('Basic'.length()).trim()), java.nio.charset.Charset.forName('UTF-8')), ':')]" doc:name="Session Variable"/>
        <logger message="user name = #[sessionVars.userInfo[0]] ***** password= #[sessionVars.userInfo[1]]" level="INFO" doc:name="Logger"/>

<html>
<body>
<b>UserName: #[flowVars.user]</b>
</body>
</html>
<set-session-variable variableName="userInfo" value="#[org.mule.util.StringUtils.split(new String(org.mule.util.Base64.decode(message.inboundProperties.'Authorization'.substring('Basic'.length()).trim()), java.nio.charset.Charset.forName('UTF-8')), ':')]" doc:name="Session Variable"/>
        <logger message="user name = #[sessionVars.userInfo[0]] ***** password= #[sessionVars.userInfo[1]]" level="INFO" doc:name="Logger"/>