三种思路。
1, 就想你说的用session 通过判断session中是否有对应的值来判断用户是否登陆。
最好做成一个自定义的标签。将你需要登陆的页面嵌入这个标签就可以了。
2,将需要权限才能登录的jsp文件放到WEN-INF目录下,通过转发跳转到该目录下的jsp文件进行访问
3, 通过过滤器来处理 . 将你需要登陆后才能访问的页面放到 一个目录下(非WEN-INF目录)。
然后 在过滤器中判断你的请求是否能够进入这个目录就可以了。
1.写一个FILTER,用来判断用户是否有权限进入指定页面。
java 代码
- private static Logger LOG = Logger.getLogger(FilterServlet.class);
- private String allowRole = null; //配置允许的角色
- private String redirectURl = null; //重定向的URL
- public void init(FilterConfig filterConfig) throws ServletException {
- // 得到允许的角色,这个参数是由web.xml里的allowRole所指定
- allowRole = filterConfig.getInitParameter("allowRole");
- // 指定要重定向的页面
- redirectURl = "/locker/index.html";
- }
- /**
- * 在过滤器中实现权限控制
- */
- public void doFilter(ServletRequest sRequest, ServletResponse sResponse,
- FilterChain filterChain) throws IOException, ServletException {
- HttpServletRequest request = (HttpServletRequest) sRequest;
- HttpServletResponse response = (HttpServletResponse) sResponse;
- HttpSession session = request.getSession();
- // 如果会话中的用户为空,页面重新定向到登陆页面
- if (session.getAttribute(UserAction.CURRENT_USER) == null) {
- response.sendRedirect(redirectURl);
- } else {
- // 会话中存在用户,则验证用户是否存在当前页面的权限
- User user = (User) session.getAttribute(UserAction.CURRENT_USER);
- try {
- // 如果用户有当前页的权限, 过滤链继续传递请求和响应
- if ("0".equals(allowRole) || user.hasPower(allowRole)) {
- filterChain.doFilter(sRequest, sResponse);
- } else {
- // 如果用户没有当前页的权限,页面重新定向到登陆页面
- response.sendRedirect(redirectURl);
- }
- } catch (Throwable e) {
- LOG.error("权限过滤时候出现错误", e);
- throw new RuntimeException("权限过滤时候出现错误", e);
- }
- }
- }
- public void destroy() {
- }
- }
在web.xml中配置 要过滤的页面和能进入当前页面的角色
xml 代码
- </filter>
- <filter-mapping>
- <filter-name>UserAdmin </filter-name>
- <url-pattern>/jsp/security/* </url-pattern>
- </filter-mapping>
- 上面配置的意思是说,当用户进入/jsp/security文件夹下的页面的时候,程序会进入FilterServlet 里的doFilter方法里,进行权限判断
其他的页面权限控制:
1.你可以在filter里判断用户是否登录,然后需要特殊权限能访问的页面,在页面里进行判断。
2.推荐使用开源框架ACEGI来进行权限控制。
相关推荐
下面我们将详细讨论Filter的工作原理以及`UserRoleFilter`如何实现页面访问权限控制: 1. **Filter生命周期**: - **初始化**:当Filter被加载时,会调用`init(FilterConfig filterConfig)`方法。在这个方法中,`...
这种方式的好处在于,开发者可以在编写代码的同时,直接在注释中定义该代码块或方法的访问权限,这样就无需额外维护一个权限配置表,降低了系统的复杂性。当用户尝试访问某个功能时,系统会解析对应代码的注释,判断...
本篇文章将详细探讨如何在SpringBoot中实现基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限控制,包括菜单控制、页面元素控制以及URL控制。 首先,让我们理解RBAC模型。RBAC是一种权限分配策略,...
在Java Web开发中,访问权限控制是至关重要的一个环节,它确保了只有具有相应权限的用户才能访问特定的资源或执行特定的操作。本示例主要通过Filter技术来实现这一功能,这是一种常见且实用的方法。 首先,我们需要...
首先,权限控制的核心目的是限制用户对资源的访问,确保只有具有适当权限的用户或程序才能执行特定的操作。在JavaScript中,权限控制主要体现在以下几个方面: 1. **DOM操作权限**:JavaScript可以通过Document ...
STRUTS2拦截器控制页面访问权限的设计与实现,解决基于STRUTS2的web应用的程序访问控制,防止非法访问
下面将详细介绍如何在 Linux+Apache 上实现 Web 页面访问权限的控制。 修改 http.conf 文件 首先,我们需要修改 Apache 服务器的配置文件 http.conf。在这个文件中,我们可以加入一行代码 AllowOverride All,这样...
3. **路由和中间件**:tp5的路由系统可以与权限控制结合,限制某些路由只有特定角色的用户才能访问。中间件(Middleware)是tp5的一种过滤机制,可以在请求进入控制器之前进行权限验证。 4. **视图和模板**:权限...
**JSP页面的访问控制**是指在基于JavaServer Pages(JSP)技术构建的Web应用程序中,对用户访问特定页面或资源的权限进行管理的一种机制。这种机制通常用于确保只有经过身份验证和授权的用户才能访问受保护的内容,...
3. **细粒度权限管理**:除了页面级别的权限控制外,还需要考虑更细粒度的功能权限。例如,对于用户管理页面,不同角色可能拥有不同的操作权限(如创建、删除、查询等)。通过定义唯一的标识符来区分这些功能,并与...
权限管理静态页面是指在CRM系统中,用于展示和控制用户访问权限的界面,它通常由前端开发人员利用HTML、CSS和JavaScript等技术构建,不涉及动态数据交互。下面将详细讨论权限管理的相关知识点。 1. **权限模型**:...
ES6引入了模块系统,通过import和export关键字,可以创建独立的命名空间,控制代码的导入和导出,有助于管理和控制不同部分的代码访问权限。 7. **安全实践**: - **XSS(Cross-site scripting)防护**:...
除了页面级别的权限控制外,还应考虑栏目显示控制。这意味着,如果用户不具备某个栏目的管理权限,那么该栏目将不会在菜单或导航中显示,进一步增强了用户体验的安全性和合理性。 #### 结论 JSP权限控制的实现不仅...
在IT行业中,尤其是在Web开发领域,用户认证与授权是至关重要的环节。...同时,对RBAC的理解和应用也是系统管理员和开发者必备的技能之一,因为它能有效地管理和控制系统的访问权限,防止未经授权的访问。
在实践中,学习如何编写安全的登录和权限控制代码至关重要,因为不正确的实现可能导致严重的安全漏洞,如SQL注入或跨站脚本攻击(XSS)。 总结一下,PHP登录权限控制涉及以下几个关键知识点: 1. 用户身份验证:...
在这个主题中,“基于Shiro拦截URL,实现权限控制”意味着我们将探讨如何利用Shiro来管理应用程序中的访问权限,确保用户只能访问他们被授权的资源。 首先,我们需要理解Shiro的三个核心概念: 1. 身份验证...
在实现权限控制时,通常需要设计权限表,其中包含权限类型字段,用于区分不同的权限类别,如菜单访问、功能操作、文件修改和页面元素的可见性。通过权限表与资源关联,可以实现“用户-角色-权限-资源”的授权模型。...
在Java Web开发中,权限控制是一项至关重要的任务,它确保只有授权的用户才能访问特定的资源和服务。这里的“java权限控制”主要指的是在Web应用程序中实施的安全策略,以保护敏感数据和操作。过滤器(Filter)是...