我在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
请帮忙
此致 阿里夫
答案 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。