需要做个登陆和权限,考虑用struts2的拦截器和包属性来实现。
建立一个public的package,容纳公用的可以开放访问的所有action,返回的jsp页面也放在默认的webroot目录下,可无验证访问。
<!-- 公共页面包-->
<package name="public" extends="struts-default">
<action name="index" class="i.tommy.test.action.indexAction">
<result name="success">/index.jsp</result>
</action>
</package>
需要权限控制的定义在一个authority的package
<!-- 需要权限访问包 -->
<package name="tommy" extends="struts-default">
<interceptors>
<interceptor name="author" class="i.tommy.test.interceptor.userLoginInter"/>
</interceptors>
<default-interceptor-ref name="author" />
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<action name="admin" class="i.tommy.test.action.adminAction">
<result name="success">/WEB-INF/web/admin/index.jsp</result>
</action>
</package>
interceptor name="author" 定义一个拦截器负责对session中的值进行判断来完成登陆的检验,当不是合法用户时跳转到login.jsp(webroot目录下可公共访问)。 并设置为此package目录的默认拦截器。拦截器需要实现 Interceptor接口或者abstractinterceptor抽象内。
主要是重写interceptor方法
public String intercept(ActionInvocation invocation) throws Exception
{
System.out.println("----权限拦截器拦截开始---");
ActionContext ctx = invocation.getInvocationContext();
Map session = ctx.getSession();
session.put("user", "admin");/模拟登陆状态
String user = (String) session.get("user");
if (user != null && user.equals("admin"))
{
System.out.println("----Welcome "+user+"--");
return invocation.invoke();
}
ctx.put("tip", "对不起,您没有登录。");
System.out.println("----权限拦截器拦截结束---");
return "login";
}
struts.xml中配置的adminaction 并且设置该action
返回<result name="success">/WEB-INF/web/admin/index.jsp</result>
此处用web-inf是需要把需要权限控制的页面放到webroot/web-inf 防止用户直接在浏览器输入jsp文件URL访问页面。从而达到控制jsp页面登陆的效果。
小弟刚学struts2 都是简单的东西 新手共勉 大侠赐教 喷子滚蛋。
分享到:
相关推荐
为了支持身份验证和权限控制功能,需要设计相应的数据库表结构。以下是一些关键的数据表: - **用户信息表**:存储用户的基本信息,如用户名、密码等。 - **角色表**:定义各个角色及其对应的权限。 - **用户-角色...
`credid-server`是一个专为此目的设计的服务器,它为用户提供安全的身份验证服务,并根据用户角色和权限控制对资源的访问。在本文中,我们将深入探讨`credid-server`的核心功能、技术实现、以及它在实际应用中的重要...
标题中的“行业分类-物理装置-一种身份验证的方法、装置、计算机设备及可读存储介质”揭示了这个压缩包文件包含的技术主题,主要是关于身份验证技术在物理装置上的应用,以及与之相关的计算机设备和存储介质。...
权限控制系统是软件开发中至关重要的...总的来说,权限控制系统是保障系统安全性和数据完整性的关键,它的设计应兼顾灵活性、可扩展性和易管理性。通过理解上述概念,开发者能够构建出符合业务需求的高效权限管理体系。
【标题】"管理系统系列--后台管理系统,集成权限管理"揭示了这是一个专为后台操作设计的系统,具有用户管理和权限控制的核心功能。此类系统通常用于企业级应用,帮助管理员有效地管理用户账户,分配不同级别的访问...
动态菜单是后台系统设计中的一个重要组成部分,它允许根据用户角色和权限动态生成显示的菜单。这种方式能够极大地提高系统的灵活性和可扩展性,避免了因为权限变化而频繁修改前端代码的问题。动态菜单通常基于数据...
同时,通过结合ASP.NET Identity或者自定义的身份验证和授权机制,可以实现细粒度的权限控制。 总之,这个“管理系统系列--MVC4通用权限管理系统基础框架”是一个用于快速构建安全、可扩展的企业级Web应用的工具...
其中,权限主控程序是整个权限控制系统的中枢,负责用户身份验证、系统菜单自动生成、菜单权限控制以及逻辑界面程序控件权限对象的生成等核心任务。 - **用户授权管理程序**:提供系统管理员对用户、用户组、权限...
综上所述,这个管理系统系列的重点在于构建一个高效、安全的一站式登录解决方案,通过精细的权限控制来满足不同用户的访问需求,同时确保整个系统的安全性和合规性。这需要深入理解身份验证和授权机制,以及如何在...
"简单的权限控制系统"这个主题主要探讨了如何设计和实施一个基础的权限控制方案,它涉及到用户、角色和权限这三者之间的相互作用。在这个系统中,用户是操作的主体,角色是权限的集合,而权限则定义了用户可以进行的...
在JSP中,可以通过session和cookie来处理用户身份验证,用Servlet过滤器进行权限拦截,以及使用如Spring Security这样的框架来实现更复杂的权限控制。 日志记录则用于跟踪和记录系统运行时的事件,帮助开发者调试、...
#### 系统设计原则 - **安全性**:确保系统的安全性是首要考虑的因素,需要采取多种措施防止未授权访问。 - **灵活性**:系统应能够适应组织结构的变化,支持动态调整部门和角色。 - **可扩展性**:随着企业规模的...
基于51系列单片机的智能IC卡门禁控制系统设计是一个典型的微控制器应用实例,它利用单片机的处理能力和接口技术实现对出入人员的身份验证和控制。 51系列单片机,以AT89C51为例,是一款广泛应用的8位微处理器,具有...
2. **存储权限信息**:在数据库中存储菜单结构和页面权限信息,包括菜单的上下级关系、是否可见、是否需要验证权限等。 3. **前端处理**: - 获取所有菜单和页面的权限信息。 - 根据用户身份获取其拥有的权限列表...
3. **身份认证与授权**: 系统中的权限管理涉及到身份验证(验证用户身份)和授权(确定用户可以执行的操作)。.NET Core 提供了内置的身份认证中间件,如Cookie认证,以及角色和政策基础的授权机制。 4. **角色与...
* 权限-角色关联表:记录权限和角色的关联关系,包括权限 ID、角色 ID 等。 Laravel Passport ------------- Laravel Passport 是一个基于 OAuth2 的认证和授权系统,提供了一个简单的方式来管理客户端的授权和...
综上所述,"数据库课程设计--教务系统设计"涵盖了数据库设计、身份验证、文件管理、Web开发、安全性及用户体验等多个重要方面,是全面理解Web应用开发和数据库管理的一个实践案例。通过这样的项目,学生能够深入学习...
用户登录后,系统通过身份验证服务验证用户凭证。成功后,根据用户的角色和分配的权限,生成权限上下文。每次用户请求资源时,系统会检查权限上下文以决定是否允许访问。 2.5 模块结构设计 - 用户管理模块:负责...
### 权限控制与安全管理设计...本文档详细阐述了一个权限控制与安全管理系统的设计方案,通过上述技术细节和数据库结构设计,能够有效地实现系统权限控制与安全管理的目标。未来可以根据业务需求的变化不断优化和完善。
《网络游戏-域认证和用户网络权限控制统一处理的方法及系统》是针对网络游戏环境中,如何有效进行用户身份验证和网络权限管理的重要技术方案。这一方法旨在提高网络安全性和用户体验,确保游戏运营的稳定性和公平性...