`
jsjxqjy
  • 浏览: 116389 次
  • 性别: 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
分享到:
评论

相关推荐

    蝙蝠在线考试系统v2.2.6 JSF2+SPRING+JPA

    蝙蝠在线考试系统基于JSF2、Spring3、JPA2等JAVA技术构建,系统使用MYSQL数据库,可以部署于WINDOWS、LINUX、UNIX等各种操作系统,内置了无处不在的AJAX能力,简洁易用,支持单选题、多选题、填空题、判断题、问答题...

    P07_Algaworks_ebook-jsf-financeiro:结束 - 工作

    在 Git 中操作: 克隆位置: : 导出到 GitHub: : 本地访问 url:将上下文更改为 P07 原来是: 登录:管理员密码:123 去工作: 转到persistent.xml并更改对MySQL的访问权限(用户和密码); 在 MySQL 中创建 2 个...

    DragonZone-WebExplorer:用 JSF2 + Primefaces 编写的 Web 浏览器

    管理员拥有查看服务器上所有驱动器或网络驱动器的完全访问权限。 贡献者只能访问在 webexplorer.properties 文件中配置的特定文件夹。 他们还可以上传、下载、添加、删除和重命名他们可以查看的特定文件夹的文件和...

    P05_fgm_ebook-jsf-financeiro:工作 - 这是我一步一步的学习项目,就像 Algaworks 的 P07

    Algaworks Book - fabiogm6 的研究 Java EE 7 with JSF, PrimeFaces 和 CDI by ... 本地访问 url:P05 的上下文 登录:管理员密码:123 去工作: 转到persistent.xml并更改对MySQL的访问权限(用户和密码); 在 MySQL

    ArcGIS+Server+Java讲座

    1、前言------为什么我们选择JSF,而不是其它framework 1 2、ArcGIS Server Java开发 JSF基础 2 3、ArcGIS Server Java ADF开发...29、Server Java开发--Born for SOA系列 通过代理类访问ArcGIS Server Web Service 84

    codetrack:代码跟踪应用

    提供跟踪工具的命令访问权限。 ## codetrack-scanner-core跟踪带有代码扫描器基类的lib ## codetrack-scanner-java跟踪Java语言扫描器处理器## codetrack-scanner-jsf跟踪JSF扫描器处理器 要使用以下命令运行第一个...

    J2EE应用开发详解

    282 第16章 数据库技术和JDBC技术 283 16.1 关系数据库和SQL 283 16.2 关系数据库的工作环境 284 16.3 基于JDBC的数据访问技术 285 16.3.1 JDBC概述 285 16.3.2 数据库驱动程序 287 16.3.3 使用JDBC查询数据库 291 ...

    training-jee-201801

    Java EE培训7 训练材料 使用Java EE(Servlet,JSF)创建应用程序 使用Struts 2构建应用程序...授予对数据库的访问权限 grant all on trainingjee201801.* to trainingjee201801@localhost; 建立资料库 create databa

    JAVA WEB典型模块与项目实战大全

    2.6 jsf框架的实现  2.7 ajax框架的实现  2.8 使用jdbc连接数据库  2.9 小结  第3章 实现各种框架的集成  3.1 spring框架与其他框架的集成原理  3.2 实现ssh三种框架环境集成  3.3 实现spring与...

    iuhyiuhkjh908u0980

    PrettyFaces: EL API访问PrettyContext 支持JSF 1.1 增强了错误页面和servlet重定向 PrettyFaces是一个JSF1.2和JSF2.0的扩展,用来创建便于书签收藏、漂亮的网址。 PrettyFaces优雅的解决了这个问题,包括诸如功能:...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java开源包1

    API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用...

    java开源包11

    API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用...

    java开源包2

    API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用...

    java开源包3

    API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用...

    java开源包6

    API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用...

    java开源包5

    API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用...

    java开源包10

    API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用...

Global site tag (gtag.js) - Google Analytics