这是个过滤器的内容:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
String conString = "";
conString = req.getHeader("REFERER");//获取父url--如果不是直接输入的话就是先前的访问过来的页面,要是用户输入了,这个父url是不存在的
if("".equals(conString) || null==conString){ //判断如果上一个目录为空的话,说明是用户直接输入url访问的
String servletPath = req.getServletPath();//当前请求url,去掉几个可以直接访问的页面
if(servletPath.contains("index.jsp") || servletPath.contains("admin/login.jsp")){ //跳过index.jsp和登陆Login.jsp
chain.doFilter(request, response);
} else {
resp.sendRedirect("/ejuornal/index.jsp");//跳回首页
}
} else {
chain.doFilter(request, response);
}
}
下面是过滤器的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>FilterPages</filter-name>
<filter-class>com.ejuornal.filter.FilterPages</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterPages</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
</web-app>
这时候再去直接输入url时就会在跳回首页。
---------------------------------------------------------------------
以上方法经测试确实可用。
原文地址:
http://blog.csdn.net/liwf_/article/details/8950038
分享到:
相关推荐
标题“Java禁止直接URL访问图片”涉及到的是网络资源保护和权限控制的问题,主要知识点包括: 1. **HTTP请求与响应**: 当用户通过浏览器或其他客户端工具输入一个URL来访问图片时,实际上是发送了一个HTTP GET...
在IT领域,保护系统的安全是至关重要的,尤其是防止未授权用户直接访问系统后台页面,这不仅关乎数据安全,还涉及到业务流程的规范性。本文将详细介绍如何通过JavaScript(JS)和C#两种语言来实现这一目标,从而为...
6. **报表URL访问控制**:为了防止普通用户绕过权限控制直接访问报表,可在报表URL后附加特定参数(如`&camusername=test&campassword=xxxx`),确保用户只能在授权状态下查看报表。 通过上述步骤,方案二不仅大幅...
- **细粒度权限控制**:为不同类型的用户设置不同的访问权限,比如普通用户、管理员等。 - **日志审计**:记录用户的访问日志,以便于追踪异常行为并及时采取应对措施。 - **双因素认证**:对于敏感操作,采用双因素...
Linux系统采用的是基于权限的访问控制系统,每个文件和目录都有读(r)、写(w)和执行(x)三个权限,分别对应于所有者、用户组和其他用户。在`/etc/fstab`中挂载NAS设备时,可以设置初始权限,如`noatime,nosuid,...
其中一种常见的做法就是禁止用户通过地址栏直接访问某些特定的网页,即使这些用户可能已经拥有相应的权限。这种方法可以有效地阻止非预期的访问路径,提高系统的安全性。 #### 实现原理 禁止地址栏直接访问页面...
在Java Web开发中,权限控制是一项至关重要的任务,它确保只有授权的用户才能访问特定的资源和服务。这里的“java权限控制”主要指的是在Web应用程序中实施的安全策略,以保护敏感数据和操作。过滤器(Filter)是...
5. 防止未授权访问:确保只有已登录并具有相应权限的用户才能访问受保护的内容。 了解和掌握这些概念,并结合实践中的示例(如压缩包内的“2 登录权限处理.exe”文件),可以帮助开发者创建更安全、更健壮的后台...
在Web开发中,保护页面安全,避免用户未登录就访问敏感页面是常见的需求。使用servlet和jsp技术时,...开发者可以灵活地定义过滤器的行为,并且通过配置文件将过滤器与具体的URL模式关联起来,实现复杂的权限控制逻辑。
同时,通过过滤器进行用户权限检查,防止被封杀的用户访问受限资源。这样的设计既保护了系统的安全,又提供了良好的用户体验。 总之,URL重写和用户访问控制是构建高效、安全Web应用不可或缺的部分。在JSP环境中,...
这可以防止未经授权的用户直接访问受保护的URL。 Mybatis则作为一个轻量级的持久层框架,负责数据库操作。在权限控制中,我们可能需要查询用户的角色和权限信息,这些信息通常存储在数据库中。Mybatis的动态SQL功能...
URL注入是一种常见的安全攻击手段,攻击者通过在URL中插入恶意代码或数据来获取未授权访问权限,从而达到非法获取数据、篡改系统设置或执行其他恶意操作的目的。这种攻击方式利用了Web应用对输入验证不足的问题,...
标签“源码”表明内容可能涉及具体的代码实现,可能是某种框架或者库的源代码,用于处理URL权限控制。“工具”可能是指使用了特定的开发工具或者框架来辅助实现这些功能,比如Spring Security、Apache Shiro等。 ...
4. **访问控制列表(ACL)**:ACL是权限控制的核心,它定义了哪些用户或角色可以访问特定的URL、方法或资源。例如,只有管理员可以访问后台管理系统。 5. **过滤器(Filter)机制**:在JavaWeb中,使用Servlet ...
在这个场景中,"Filter进行权限控制"指的是使用`Filter`来实现用户访问权限的管理,确保只有登录后的用户才能访问特定的资源。下面我们将深入探讨`Filter`的工作原理以及如何实现登录控制。 `Filter`是Java Servlet...
"权限控制"则涉及到用户对系统资源的访问权限,如读、写、执行等操作。它通常包括身份验证(验证用户是谁)和授权(确定用户能做什么)。在微服务架构下,权限控制不仅需要管理单个服务的访问,还可能需要处理跨服务...
2. **授权**:Shiro支持基于角色的访问控制(RBAC),可以灵活地定义用户角色及权限,如URL拦截、方法级别的权限控制等。 3. **会话管理**:Shiro可以统一管理会话,包括会话超时、分布式会话等,提高系统的安全性。...
其次,访问控制列表(Access Control List, ACL)是一种常见的权限控制机制,用于指定哪些用户或角色可以对特定资源进行读、写、执行等操作。在Java中,可以通过实现`java.security.Principal`接口来创建自定义的...
URL级别的权限控制是指根据用户角色的不同,授予他们对特定URL的访问权限。这通常通过拦截请求,检查用户的身份和权限来实现。在Spring Security或者Struts2等框架中,我们可以配置访问控制规则,限制不同用户可以...