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

时间:2012-09-07 09:43:45

标签: java session liferay virtual-machine liferay-velocity

如何在特定的Web内容结构上设置页面会话,所以如果我分配任何具有此特定结构的页面,它将检查session是否存在,如果不存在则会要求输入密码。 然后,用户应插入密码。

在页面结构中我还想添加下一步完成取消按钮,所以如果我完成或取消它将会破坏会话。 如果在此之后用户试图访问该页面,他将再次被要求输入密码。

我正在尝试使用网络内容模板*.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

我怎样才能使这个想法奏效。

1 个答案:

答案 0 :(得分:0)

在我看来,更好的方法是编写一个 servlet 来检查用户会话,如果没有会话,将自动重定向到具有登录portlet的专用页面。验证用户真的不是Velocity脚本的任务......