`
aoingl
  • 浏览: 85710 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JBoss web 如何实现安全访问

 
阅读更多


   JBoss Web 是 JBoss AS 服务器使用的 Servet contaner, 其实它是一个 Tomcat 的运行时,然后集成到了 JBoss AS 服务器中。 所以这里描述的安全性的实现同样适合于 Tomcat。

 

    Servlet 容器启动的时候, 会针对 HTTP 协议启动一系列的 Acceptor 线程,当一个 HTTP 的请求发送到 Servet 容器的时候, 其中一个 Acceptor 线程会再次启动一个新的线程处理该请求。 在对该请求做了一些列的 pre/post 处理后, tomcat 会调用:

connector.getContainer().getPipeline().getFirst().invoke(request, response);

 方法。

  该方法会调用容器的 pipeline 的第一个 Valve 的 invoke() 方法, 基本上每个 valve 的实现都会考虑调用:

getNext().invoke(request, response);

   这点和 HttpFilter 类似。

   

    而 org.apache.catalina.authenticator.AuthenticatorBase 就是其中一个 valve,我们先看下这个 valve 都作了什么,然后看看它是如何加进当前的 pipeline 的。

 

    首先它会检查当前请求里是否有 principal, 并且该 principal 是否有权限访问当前正在访问的资源, 如果没有, 那么会调用 authenticate 方法进行登录, 如果登录成功,调用 next valve 的 invoke 方法。

 

    那这个 valve 是怎么加到当前的 pipeline 的呢? 当一个 war 部署的时候, 容器会分析 web.xml, 如果web.xml 里有 security-constraint 定义, 那么它会根据当前 login-config 里定义的 auth-method 为其分配一个 Authenticator。 它同时也是一个 Valve,其中 auth-method 一般取值为: 
  • BASIC
  • FORM
  • CLIENT-CERT
  • DIGEST
  • NONE
  除此以外, 用户可以自定义 Authenticator 的 Valve,从而实现更多的 auth-method。以 jboss  下配置 SPNEGO authenticator 为例, 在 jboss-web.xml 里加上如下定义:
    <valve>
        <class-name>org.jboss.security.negotiation.NegotiationAuthenticator</class-name>
    </valve>
   
    该 Authenticator 会忽略 auth-method 的定义。  JBoss web 就会在该 war 部署的时候,由容器直接把这个 Authenticator 加入到 pipeline。

   

 

分享到:
评论

相关推荐

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子...

    class加密,java加密,jar加密-Web虎 1.3

    Web虎,愿为广大B/S软件厂商和代理做大做强提供安全保障,保您广开财源... 一、Web虎是什么? Web虎是B/S软件源码、版权、数据综合保护系统,由深圳易用研发团队利用Windows内核驱动结合钥匙盘实现,已为深圳CRM领导...

    超级有影响力霸气的Java面试题大全文档

    HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...

    Jetty中文手册

    欢迎访问Jetty文档 Wiki. Jetty是一个开源项目,提供了http服务器、http客户端和java servlet容器。 这个wiki提供jetty的入门教程、基础配置、功能特性、优化、安全、JavaEE、监控、常见问题、故障排除帮助等等。它...

    网站架构技术

    jboss cache为代表的需要更新同步的分布式级缓存 以memcached为代表的不互相通信的分布式缓存 异步操作 使用集群 代码优化 多线程 资源复用 单例 对象池 数据结构 垃圾回收 存储...

    MCMS内容管理系统 v4.5.2.zip

    WEB服务器:Weblogic、Tomcat、WebSphere、JBoss 等 数据库服务器:Mysql等 操作系统:Windows、Linux、Unix 等 MCMS内容管理系统重要文件说明 数据库连接文件: config.properties 数据库文件:doc/db-mcms-...

    javaee-security-quickstart-archetype:Java EE安全性快速入门原型网站,该网站使用容器管理的安全性进行用户自助注册

    概括该项目是实现功能的Java EE MVC Web应用程序的。 该站点演示了针对数据库实现的基于表单的安全性。... 用户信息存储在数据库中,并为新用户分配USER... 在web.xml中配置了基于表单的安全性,并在尝试访问受限资源时

    C 网络服务开发套件0.5.0

    集成的C 通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C 的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; b. 通讯 基于XML文本通信协议,客户端可以方便...

    C 网络服务开发套件

    集成的C 通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C 的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; b. 通讯 基于XML文本通信协议,客户端可以方便...

    C++网络开发框架0.5.7

    集成的C++通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C++的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; b. 通讯 基于XML文本通信协议,客户端可以方便...

    SSO CAS 单点登录实例SSOAuth+SSOWebDemo1+SSOWebDemo2.zip

    样例部 署和运行的环境有一定的要求,需要符合Servlet2.3以上标准的J2EE容器才能运行(例如Tomcat5,Sun Application Server 8, Jboss 4等)。另外,身份认证服务需要JDK1.5的运行环境。之所以要用JDK1.5是因为笔者...

    java开源包3

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java 面试题 总结

    HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...

    java开源包4

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    RESTful-API后台系统架构设计(Java).doc

    RESTful API后台系统架构设计(Java) 最近设计和实现了一个JAVA的RESTful API的后台业务系统架构,主要基于Java平台。设计要求是: 性能:平均响应时间(RESTful API)小于2s(平均负载的情况下),并发访问200个以上...

    C++网络服务开发套件0.5.5

    系统 集成的C++通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C++的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; &lt;br&gt;b. 通讯 基于XML文本...

    C++网络服务开发套件0.5.6

    系统 集成的C++通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C++的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; &lt;br&gt;b. 通讯 基于XML文本通信...

    C++网络服务开发套件0.5.3

    系统 集成的C++通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C++的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; &lt;br&gt;b. 通讯 基于XML文本...

    JspRun!社区论坛系统 v6.0 bulid 090423 GBK 源码版.rar

    26、修复了三元运算符以兼容更多的web服务器(如jboss、resin等) 27、修复了广告数量不能整除时无法显示广告的问题 28、修复了“系统错误记录”无法写入的问题 29、修复了后台操作中如果 session 过期重新登陆后...

    JspRun!社区论坛系统 v6.0 bulid 090424 GBK 安装版.rar

    26、修复了三元运算符以兼容更多的web服务器(如jboss、resin等) 27、修复了广告数量不能整除时无法显示广告的问题 28、修复了“系统错误记录”无法写入的问题 29、修复了后台操作中如果 session 过期重新登陆后...

Global site tag (gtag.js) - Google Analytics