2

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

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

我正在尝试从 Web-content template 中做到这一点*.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

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

4

1 回答 1

0

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

于 2012-09-07T13:47:38.057 回答