`
jsjxqjy
  • 浏览: 118264 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JSF 访问权限

    博客分类:
  • JSF
阅读更多

JSF  是基于事件驱动的

所以 下面 就 基于 在JSF阶段事件(生命周期事件)中控制页面的访问权限 

<!--EndFragment-->

 

主要是 实现一个生命周期监听接口  javax.faces.event.PhaseListener

 

public class SecurityLifeListener implements PhaseListener{

 

public void afterPhase(PhaseEvent arg0) {

 }

 

 

public void beforePhase(PhaseEvent event) {

//设置 ViewRoot

FacesContext fc = event.getFacesContext().getCurrentInstance();

UIViewRoot uiv = new UIViewRoot();

 

//根据实际情况 设置跳转页面

uiv.setViewId("/login.jsp");
    fc.setViewRoot(uiv);

 

//或者直接根据你配置文件的导航 来设置

 

// logout 来自配置文件  

 

NavigationHandler nh = fc.getApplication().getNavigationHandler();
                nh.handleNavigation(fc, null, "logout");

<!--EndFragment-->

 

 

//还可以使用  常用的HTTP对象

 

(HttpServletRequest) FacesContext.getCurrentInstance()
    .getExternalContext().getRequest()

 

 

}

 

 

/**
  * 参数说明 Restore_View:当(重新)访问JSP的时候,重建server端组件树。
  *
  * Apply_Request Value:将request parameters 复制到component submitted values。
  *
  * Process_Validators:执行验证。
  *
  * Update_Model Values:更新model数据:<h:inputText value="#{user.name}"/>
  *
  * Invoke_Application:调用应用程序:Action。
  *
  * Render_Response:渲染Response:保存状态并装载下一个视图。
  *
  */

 

public PhaseId getPhaseId() {
  return PhaseId.RENDER_RESPONSE;
 }

 

 

 

}

 

 

当然我们使用 javax.servlet.Filter 来进行访问权限控制 也行 ,但是没有比上面的方法来得更直接的了

 

我们通过上面的方法就明白 ,其实这个生命周期监听 和拦截器 很相似的 。它主要是控制某个生命周期的前后做什么处理

 

当然我们想让这个 监听响应的JSF生命周期的类生效 还需要下面的配置:

 

<lifecycle> <phase-listener id="securityListener"> com.SecurityLifeListener </phase-listener> </lifecycle>

 

 

下面说明它的优点:

  

不影响原有的业务逻辑代码的情况下,对页面进行权限控制; 

 

集中处理页面权限,简单而高效。

 

0
1
分享到:
评论

相关推荐

    JSFDemo

    8. **安全**:Spring Security可以被用来保护应用程序的资源,控制用户的访问权限。 9. **国际化和本地化**:JSF支持资源包,可以处理多语言内容。 在深入研究JSFDemo项目的源代码和配置文件时,我们可以更详细地...

    JSF培训实例 JSF

    **用户权限管理**是JSF应用中的一个重要方面。通常,这涉及到身份验证和授权机制,确保只有经过认证和授权的用户才能访问特定资源。JSF可以与Spring Security、Apache Shiro等安全框架集成,实现登录验证、角色控制...

    Jsf整合三大框架及Spring Security

    在JSF应用中集成Spring Security,可以实现细粒度的权限控制,保护应用程序免受非法访问。例如,可以设置特定的URL或方法需要特定的角色才能访问,或者根据用户权限动态调整界面展示内容。 5. **Spring TestSuite**...

    JSF+SSH开发应用实例

    在JSF+SSH组合中,Spring主要负责业务逻辑和数据访问层的协调。 3. **Struts框架**: Struts是基于MVC设计模式的Web应用框架,主要用于控制应用程序的流程。它通过Action类来处理用户的请求,并决定接下来的视图。在...

    jsf,spring酒店预定管理系统

    此外,Spring Security可以用于权限管理和认证,确保只有授权用户才能访问特定的预订功能。 **文件"chap04"可能包含的内容** "chap04"可能是项目中的第四章或第四部分,通常会详细讲解系统的某些关键功能或模块。这...

    jsf+hibernate+javabean完成对表的增删查改

    在IT领域,JavaScript Server Faces(JSF)...在实际项目中,还可以结合其他技术和工具,如Spring Security进行权限控制,PrimeFaces提供更丰富的UI组件,以及JUnit和Mockito进行单元测试,以提高代码质量和可维护性。

    jsf hibernate tiles 整合登录

    通过这种方式,你可以利用JSF 的组件模型、Hibernate 的数据访问能力以及Tiles 的布局管理,为用户提供一致且易于管理的用户体验。这个登录实例是此类整合的一个基础应用,但你可以根据需求扩展它,例如添加权限控制...

    一个jsf企业级程序示例

    4. **企业级应用架构**:一个典型的企业级应用通常包括多个模块,如用户认证、权限管理、数据访问、业务逻辑和服务层等。JSF作为前端展示层,Spring负责业务逻辑和依赖管理,而iBATIS处理数据库交互。这种架构使得每...

    JSF登录的实例 Eclipse

    此外,对于大型应用,可能还需要结合Spring Security或Apache Shiro等安全框架来进行更复杂的权限管理。 总之,JSF登录实例是学习JSF的一个基础但重要的实践。通过这个过程,开发者能够理解JSF的组件模型、Managed ...

    图书管理系统-BookM_JSF_iBatis_Spring

    7. **安全性与性能优化**:系统可能采用了Spring Security进行权限控制,防止未授权访问。同时,通过缓存机制、数据库连接池和优化的SQL查询,提升系统响应速度和资源利用效率。 8. **部署与维护**:系统可能使用...

    jsf 文件上传和下载

    - 文件存储:合理规划服务器上的文件存储位置,考虑文件的访问权限、备份和清理策略。 - 用户体验:提供明确的上传进度提示和错误反馈,以及友好的下载体验。 通过以上步骤,你可以在JSF应用中实现文件上传和下载...

    JSF+primefaces 网盘实现代码前端

    - 权限管理:根据用户角色设置不同的访问权限,如读、写、执行等。 总结来说,这个"JSF+primefaces 网盘实现代码前端"项目将利用JSF的强大力量,结合PrimeFaces的丰富组件,以及HTML、CSS和JavaScript的基础技术,...

    JCatalog电子商务系统案例 jsf+spring+hibernate

    3. **数据访问层**:使用Hibernate进行数据库操作,包括商品库存管理、用户信息存储和订单记录等。 4. **持久化模型**:定义Java实体类,对应数据库中的表,通过Hibernate的注解进行配置。 5. **配置文件**:包括...

    精通JSF-基于EJB Hibernate Spring整合开发与项目实践-第15章代码

    **Spring**是一个全面的企业级应用开发框架,核心特性包括依赖注入(DI)、面向切面编程(AOP)、以及大量的模块如Spring MVC(用于Web开发)、Spring Data(数据库访问)、Spring Security(安全控制)等。...

    pam.rar_spring jsf

    此外,Spring Security可以集成到JSF应用中,实现权限控制和认证。 **Spring与Hibernate集成**:Spring通过其数据访问模块(如Spring JDBC和Spring Data JPA)提供了对Hibernate的全面支持。开发者可以使用Spring的...

    JSF框架网上银行系统

    JSF与模型的交互主要通过Managed Beans实现,这是一个简单的Java类,可以包含业务逻辑和属性,供视图和控制器访问。 4. **控制器(Controller)**: JSF中的控制器主要由事件处理机制完成。当用户操作组件时,会触发...

    JSF实战

    1. ** Managed Beans**:JSF中的Managed Beans是简单的Java对象,它们存储业务数据和方法,可以通过JSF EL表达式访问。 2. **转换和验证**:JSF支持在组件级别或全局级别的数据转换和验证,确保输入数据的有效性。 3...

    mastering jsf

    表达式语言是JSF中的一个重要特性,它允许开发者在JSF页面中访问JavaBean属性、执行简单运算等操作。EL的使用可以显著减少页面代码量,提高代码的可读性和可维护性。 **4. 组件树** JSF通过组件树来表示Web页面的...

    JSF 2 + Spring 3 integration example

    - 通过配置 Spring Security 过滤器,可以拦截并处理用户的登录请求,同时在 JSF 页面上展示相应的权限控制。 5. **AOP 在 JSF 中的应用**: - Spring 的 AOP 功能可以在 JSF Managed Bean 的方法调用前后添加切...

    jsf的使用和详细说明

    JSF可以与Spring、Hibernate、PrimeFaces等其他框架无缝集成,进一步扩展其功能,例如Spring Security用于权限管理,Hibernate用于持久化数据,PrimeFaces提供更多的UI组件和特效。 综上所述,JSF是一个强大且灵活...

Global site tag (gtag.js) - Google Analytics