不用使用过滤器,过滤器实现不允许IP地址等登陆还可以.
不允许用户不经过登陆直接使用网页应该使用HttpSession.
例如 在登陆时保存Sessin
HttpSession session=request.getSession();
session.setAttribute("user",user);
这样在用户访问一个网页就检查HttpSession中是否保存的用户名.
就可以判断是否经过安全验证了.
HttpSession session=PageContext.getSession();
if ((session!=null)&&(session.getAttribute(user)!=null))
{
//合法
}
else
{
//非法
}
不允许用户不经过登陆直接使用网页应该使用HttpSession.
例如 在登陆时保存Sessin
HttpSession session=request.getSession();
session.setAttribute("user",user);
这样在用户访问一个网页就检查HttpSession中是否保存的用户名.
就可以判断是否经过安全验证了.
HttpSession session=PageContext.getSession();
if ((session!=null)&&(session.getAttribute(user)!=null))
{
//合法
}
else
{
//非法
}
解决方案 »
- JDBC连接mysql的小程序,提示SQL语句错了?。
- 关于webservice在 new ServiceClient() 时报错
- 关于万恶的乱码问题,求解
- java.lang.NullPointerException,恳求帮助!
- 发布struts+spring+hibernate的login例子时的错误,帮忙看下
- 把GML导入SQLServer
- 高分求学习java的书籍和方法以及资料,up有分
- wl的jdbc的connect pool问题,大家救命啊。。。
- (急)奇怪的HelloWorld问题
- 关于jbuild,ejb的问题,一定给分!
- 通过Webservice技术来实现可行吗?
- 如何显示clob内容
public class SessionTimeoutException extends RuntimeException{ /**
*
*/
public SessionTimeoutException() {
super();
// TODO Auto-generated constructor stub
} /**
* @param message
* @param cause
*/
public SessionTimeoutException(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
} /**
* @param message
*/
public SessionTimeoutException(String message) {
super(message);
// TODO Auto-generated constructor stub
} /**
* @param cause
*/
public SessionTimeoutException(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
}
}然后struts配置文件里面定义一个全局异常,其他要用的地方也可以抛出到这个类上面来
一般来说是限制对action的访问,这样需要加个判断。
boolean pass=true;
String path =request.getRequestURL().toString();
if(path.endWith(".do")){//是对action的访问
String logonFlag=(String)req.getSession().getAttribute("isLogon");
pass = (logonFlag != null) && (logonFlag.equals("true")));
}
if(pass){
chain.doFilter(request,response);
}else{
res.sendRedirect( request.getContextPath() + "/ibatisRecall/error.jsp");
}
你可以参考一下acegi的实现。
比如说,有以下安全配置:
/index.jsp=AUTH_ANONYMOUS,AUTH_USER
/**/*.js=AUTH_ANONYMOUS,AUTH_USER
/**/*.do=AUTH_USER
/**=AUTH_USER
AUTH_ANONYMOUS表示匿名用户,AUTH_USER表示登陆用户
根据url进行正则匹配,不过那就比较复杂了。