通过LDAP处理前端登录和身份验证

时间:2017-04-10 11:38:38

标签: ibm-datapower

我已经创建了一个MPGW政策,在进入后方之前添加首页进行身份验证:

请求规则:

Rule1 : Matchrule: /favicon.ico

Rule2: Matchrule: /loginpage.html Transform: xsl stylesheet to dispaly a html loginpage and add the login & password at the query params in the URL

Rule3: Matchrule: /wps/portal/Home Transform: xsl stylesheet to extract login/passwrd from URL and authenticate user with a LDAP (dp:ldap-authen()) and write result in a context variable

这是我的问题:

回应规则:

Rule4: Matchrule: "/" Transform : xsl stylesheet " i want to do: if context variable is OK nothing to do else display an error page html " !!!??

我已在回复样式表中写道:



<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dp="http://www.datapower.com/extensions" xmlns:re="http://exslt.org/regular-expressions"
extension-element-prefixes="dp re"
exclude-result-prefixes="dp re">

   <xsl:output method="html"/>
   
   
<xsl:template match="/">
 
<xsl:if test="string-length(dp:variable('var://context/LDAP_Auth_Status')) = 0">
<!--ERROR-->
					<html>
						  <head>
							<title> Error Page</title>
							</head>
							<body>
							<h2> Error USER VALIDITY </h2>
							<strong>doom!!</strong>  
						  </body>
					</html>


</xsl:if>


</xsl:template>
</xsl:stylesheet>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

首先,Rule4: Matchrule: "*"如果您希望它匹配任何内容,则应为星号。

其次,是否有背面回应?

如果应该运行Response规则,则必须添加var://service/skip-backside=1。否则会转到错误规则。

最好不要在上下文中添加值。您应该使用上下文变量,例如:

var://context/LDAPInfo/LDAP_Auth_Status

您可以使用<xsl:message pd:priority="debug">将信息添加到日志中,以便更轻松地查找值。还可以使用Probe查找Context变量值并查看流程如何运行。