`
aoingl
  • 浏览: 86210 次
  • 性别: 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。

   

 

分享到:
评论

相关推荐

    jboss-web-3.0.0-beta-2.zip_beta_jboss_jboss web 3.0_jboss-web

    4. **安全管理**:JBoss Web 3.0.0可能包括了增强的安全特性,如JAAS(Java Authentication and Authorization Service)集成,提供用户认证和授权功能,以保护Web应用程序免受未经授权的访问。 5. **性能优化**:...

    jboss安全性 jboss设置安全性

    ### JBoss安全性设置详解 #### 一、JMX控制台安全性配置 ...以上步骤详细介绍了如何针对JBoss AS中的JMX控制台和Web控制台进行安全性配置,通过这种方式可以有效地限制非授权用户的访问,提高系统的安全性。

    JBoss 将WEB应用发布为默认应用程序

    总之,将WEB应用设置为JBoss的默认应用是一项涉及服务器配置和XML解析的任务,通过适当修改`jboss-web.xml`文件并正确部署,可以实现直接通过IP访问应用的目标。在实践中,务必遵循JBoss的官方文档和提供的指南,以...

    jboss for web JBossMiddleware

    - **高效共享企业数据**: 支持安全可靠的数据访问和交换。 #### 四、案例分析:Bodog.com 的成功经验 - **性能与可扩展性**: Carl Schmidt, Bodog.com 的 CTO 表示,JBoss Application Server (JBoss AS) 和 JBoss...

    JBOSS4设置控制台jmx-console登录密码

    为了实现对jmx-console的访问控制,需要在`web.xml`文件中添加或启用安全约束。该文件位于`jmx-console.war`解压后的`WEB-INF`目录下。安全约束的添加主要涉及以下代码段: ```xml &lt;web-resource-collection&gt; ...

    TOMCAT移植到JBOSS

    - **安全配置**:由于JBOSS提供了更多的安全特性,例如基于角色的访问控制,因此需要重新评估和配置应用的安全模型。 - **测试验证**:完成移植后,进行全面的功能性和性能测试,确保应用在新环境下能够稳定运行。 ...

    Jboss安全性配置.pdf

    当应用需要启用安全性时,可以通过在jboss.xml或jboss-web.xml等部署描述符中指定相应的安全性域。 以JMX控制台为例,这是一个可以全面管理JBoss服务器的工具,因此需要特别的保护。为了保护JMX控制台,我们需要在...

    Jboss 优化配置.

    在JBoss的启动脚本中,通过修改`run.sh`或`run.bat`(视操作系统而定)可以实现JBoss服务的后台运行。这对于生产环境下的服务器尤其重要,因为这能够避免控制台输出占用过多资源,同时也能使系统的管理更为方便。 ...

    JBOSS开发人员指南

    Java Authentication and Authorization Service (JAAS) 是Java平台的标准安全框架,开发者可以通过配置JAAS来实现JBoss的安全控制。 七、JMS与消息传递 7.1 JBoss Messaging JBoss支持Java Message Service (JMS)...

    ejb角色安全(基于jboss)

    在JBOSS这样的Java应用服务器中,实现EJB角色安全对于保护系统资源至关重要。 在基于JBOSS的EJB角色安全中,我们通常会遵循以下步骤: 1. **定义安全角色**:首先,需要定义应用程序中的安全角色,这些角色可以是...

    springmvc4.2+mybatis3.0+jboss

    总的来说,"springmvc4.2+mybatis3.0+jboss"这个项目组合提供了一种高效、可维护的Java Web开发方式,利用Spring MVC的MVC架构,MyBatis的数据持久层能力,以及JBoss的运行环境,共同构建出强大的企业级应用。

    jboss学习资料/JBOSS使用指南

    1.2 应用服务器:JBoss作为应用服务器,负责管理、运行和部署Java EE应用程序,包括Web服务、EJB(Enterprise JavaBeans)、JMS(Java消息服务)等组件。 二、JBoss安装 2.1 环境准备:确保系统已经安装了Java ...

    jboss-4.0.5.GA.zip

    8. **安全管理**:具备用户认证和授权功能,支持JAAS(Java Authentication and Authorization Service),可实现基于角色的访问控制。 9. **热部署**:允许开发者在不中断服务的情况下更新部署的应用,提高了开发...

    Deploying Java Web Start Applications on the JBoss Application Server

    本文将详细介绍如何在JBoss应用服务器上部署Java Web Start应用程序,并利用Java Web Start技术实现客户端图形用户界面(GUI)的自动更新。Java Web Start技术不仅支持Windows环境,同时也适用于Linux、Unix(如...

    基于JBOSS的J2EE开发(PDF)

    8. **安全管理**:涵盖J2EE的安全模型,如角色、权限、认证和授权,以及在JBOSS中实现这些功能的配置。 9. **集群与高可用性**:讨论JBOSS集群的概念,如何设置负载均衡和故障转移,提高应用的可用性和可扩展性。 ...

    jboss 4.2.3

    6. **安全特性**:JBoss 4.2.3提供了基于角色的访问控制(RBAC)和认证机制,以确保只有授权的用户和应用程序可以访问服务器资源。它还支持LDAP(轻量级目录访问协议)集成,便于与企业身份管理系统配合使用。 7. *...

    jboss配置https环境

    在`{JBOSS_HOME}\server\default\deploy\jbossweb-tomcat50.sar`目录下的`server.xml`文件中,找到或添加一个用于HTTPS连接的Connector配置。例如: ```xml ${jboss.bind.address}" maxThreads="100" ...

Global site tag (gtag.js) - Google Analytics