目前很多项目对权限的控制一般普遍使用Acgi来控制权限。这里对老技术做一个回顾,曾经使用过Filter来控制权限,如果对Filter不是很熟悉的朋友,可以简单看下,也许多少会有些帮助。
public class PopedomFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
String contextPath = httpServletRequest.getContextPath(); //取得项目当前根目录 例如:/project
String currentPath = httpServletRequest.getRequestURI(); //取得当前要访问的页面目录 /project/admin/xxx.action
if (!checkUserPopedom(httpServletRequest, httpServletResponse, contextPath, currentPath)) { //检查当前访问的路径是否包含在此用户的权限列表中,如果不存在return出去,不进行下一步的调用
return;
}
filterChain.doFilter(servletRequest, servletResponse);
}
private boolean checkUserPopedom(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String contextPath, String currentPath) throws IOException {
User user = (User) httpServletRequest.getSession(true).getAttribute("user");
if (user == null) {
httpServletResponse.sendRedirect(contextPath + "/");
return false;
} else {
if (!checkPopedom(user, contextPath, currentPath)) {
httpServletResponse.sendRedirect(contextPath + "/");
return false;
}
}
return true;
}
private boolean checkPopedom(User user, String contextPath, String currentPath) {
if (user.getSystemResourceList() != null) {
for (SystemResource resource : user.getSystemResourceList()) {
String url = contextPath + resource.getActionUrl().trim();
if (url.equals(currentPath)) {
return true;
}
}
}
return false;
}
public void destroy() {
}
}
在web.xml 中需要对这个Filter进行配置如下
<filter>
<filter-name>PopedomFilter </filter-name>
<filter-class>...filter.RightFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PopedomFilter </filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
分享到:
相关推荐
用filter对登录进行控制,如果想访问某个目录下的文件,必须先登录,如果没有登录会跳转到登录页面。username:fang,password:11
Filter控制页面的访问权限Filter控制页面的访问权限Filter控制页面的访问权限
这是用rbac来实现的,用于对权限的路径的控制
javaweb使用filter实现的访问权限控制示例。详情请看博客:https://blog.csdn.net/yuzhiqiang_1993/article/details/81288912
filter过滤器实现权限访问控制以及同一账号只能登录一台设备
java中使用Filter控制用户登录权限具体实例,需要的朋友可以参考一下
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin...
主要介绍了javaweb设计中filter粗粒度权限控制代码示例,小编觉得还是挺不错的,需要的朋友可以参考。
主要为大家详细介绍了使用Servlet Filter实现系统登录权限,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
根据这个思路我们可以最终使用Spring的拦截器,或者servlet的Filter实现同样的权限管理 快速搭建前后端分离的权限管理系统 提供一套基于SpringBoo+shiro的权限管理思路. 前后端都加以控制,做到按钮/接口级别的权限...
可以基于 Filter 实现 在数据库中存放 用户、权限、访问 URL 对应关系, 当前用户访问一个 URL 地址,查 询数据库判断用户当前具有权限,是否包含这个 URL,如果包含允许访问,如果不包含 权限不足 !!!
里面有我的Filter访问控制权限的全部代码,只要新建maven项目,然后导进,就可以用了,因为数据库版本不同,可能需要自行修改一下数据库连接的代码就好了
java后台权限管理系统源码(spring boot+mvc+mybatis)。 项目是maven,相应的jar包也在压缩包里。项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器)...
本教程中以实际例子介绍了过滤器的运行方式,以JSP开发中常见的中文乱码过滤器和限抽客户机IP访问的二个例子,本教程中代码部分转载,都经过本人修改了其中错误,加了详细注释,保证可以正常运行,希望对大家有所帮助
Filter过滤器,对web服务器所有web资源进行过滤,从而实现一些特殊的功能(权限访问控制、过滤敏感词汇、压缩响应信息)。Filter能够对Servlet容器的请求和响应进行检查和修改,其本身不能生成请求request和响应...
3.控制端添加了权限判断filter命令 4.重新整理了自定义命令 5.版本检测自动下载升级器 6.ZipMyself项目使用了自定义压缩包,可以设置解压文件的编码 7.所有的环境文件都放置在用户目录下,而不是像2.6版本放在C://...
权限管理系统 shiro + ssm实现,实现菜单,有学习的可以下载哦!项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器)...
1.Filter概述 Filter也称为过滤器,可以实现对资源访问的拦截,如实现权限控制,敏感词汇过滤,压缩响应等 2.Filter原理