设置特定Liferay Web内容结构的会话



如何在特定的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脚本的任务。。。

最新更新