如何在特定的Web内容结构上设置页面会话,以便如果我为任何页面分配此特定结构,它将检查session
是否存在,如果不存在,它将要求输入密码。然后,用户应插入密码。
在页面结构中,我还想添加下一步、完成和取消按钮,因此如果我完成或取消,它将破坏会话。如果在这之后用户试图访问该页面,他将再次被要求提供密码。
我正在尝试从Web内容模板*.VM
中执行此操作。
以下是我迄今为止制作的代码:
结构代码:
<?xml version="1.0"?>
<root>
<dynamic-element name="classified" type="list" index-type="" repeatable="false">
<dynamic-element name="Yes" type="1" index-type="" repeatable="false" />
<dynamic-element name="No" type="0" index-type="" repeatable="false"/>
</dynamic-element>
<dynamic-element name="content" type="text_area" index-type="" repeatable="false"/>
</root>
模板代码:
#if($classified.getData() == "1")
#if($request.parameters.get('password') == "1234")
<p>$content.getData()</p>
#else
<h2>This is the second authentication verification</h2>
<p>Please enter your second password</p>
#set ($url = $request.get('render-url'))
<form action="$url" name="auth" method="POST">
<label name="password">Password<span style="color:red">*</span></label>
<input type="password" name="password" />
<input type="submit" />
</form>
#if($request.parameters.get('password') != "1234")
<p>Please enter correct password</p>
#end
#end
#else
<h2>This is not a classified page</h2>
#end
我怎样才能使这个想法奏效。
在我看来,更好的方法是编写一个servlet,它将检查用户会话,如果没有会话,它将自动重定向到带有登录portlet的专用页面。验证用户实际上不是Velocity脚本的任务。。。