Birt / tomcat:在j_security_check之后设置会话变量

时间:2014-06-25 11:11:41

标签: jsp tomcat j-security-check

我在tomcat中使用基于表单的身份验证,并且正在使用j_security_check。代码在

之下
<form method="POST" action="j_security_check">
<table>
    <tr>
        <td colspan="2">Login to the Tomcat-Demo application:</td>
    </tr>
    <tr>
        <td>Name:</td>
        <td><input type="text" name="j_username" /></td>
    </tr>
    <tr>
        <td>Password:</td>
        <td><input type="password" name="j_password"/ ></td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" value="Go" /></td>
    </tr>
</table>
</form>

我想使用已在报告中登录的用户。我想从会话中捕获已登录的用户。我的想法是使用以下jsp语法来设置变量

<%
        session.setAttribute("myName",request.getParameter("user"));
%>

HOwever,我不知道如何设置这样的会话变量,因为在身份验证后不久,它被重定向到请求的URL

请帮忙

此致 阿里夫

2 个答案:

答案 0 :(得分:0)

通常通过过滤器解决。 检查tomcat文档中的过滤器,并应用你的过滤器(可能是为了匹配每个请求,因为你无法应用它。谷歌搜索关键字session,filter,principal。

dofilter() {
    getSession;
    if(session->user is not set) {
        session->user = request->getPrincipal->getUsername() //something like that
    }
}

答案 1 :(得分:0)

通过身份验证后,您可以通过调用以下方式从请求中获取相应的用户名:

request.getRemoteUser()

您还可以通过调用

来测试用户是否具有特定角色
request.isUserInRole()

这可以是您可以访问HttpServletRequest

的任何地方

有关更多详细信息,请参阅servlet API。