最近做了一个JBoss安全的项目,对JBoss安全的内容有了一些了解,这些了解仅限于开发阶段,在这里记录下来,免得忘记了。
照着JBoss Admin Guide关于Security的章节来写,不然太乱了。有些就直接翻译过来了。
安全在Java中具备两种意思,
1.客户端:这个应用是从哪里来的,我允许它做些什么。
2.服务端:谁在执行这个应用,我允许他做些什么。
这篇文章里面只讨论第二种情况。
安全是企业级应用的基础。作为开发人员,你需要具备控制谁被允许访问你的应用,以及应用上的何种操作被允许的能力。J2EE Spec为EJB及web组件定义了一种简单的基于role的安全模型。在JBoss中我们使用JBossSX扩展框架来处理安全。JBossSX组件支持J2EE的基于role的安全模型, 同时通过安全代理层(Security Proxy Layer),它还可以集成定制化的安全模型。JBossSX默认的声明式安全模型(基于role)是基于J2EE的JAAS(Java Authentication and Authorization Service)登陆模块的。而对于那些用声明式无法实现的安全模型,JBossSX利用安全代理层使得定制的安全模型成为可能。
1. J2EE 声明式安全
你可以将security role以及permission通过声明的方式写入标准XML描述符,并以此将安全机制与具体的业务逻辑解耦。J2EE的声明式安全正是通过这种方法来实现的,你可以将安全需求写入J2EE部署描述符(ejb-jar.xml和web.xml)。而在新的EJB和Servlet版本中,你还可以通过annotation的方式来加载。
1.1 Security References
EJB和Servlet都可以声明一到多个security-role-ref, 这个ref引用到application级别的role定义,并可以用其检验某个用户是否具备该role。
<security-role-ref>
<role-name>TheRoleICheck</role-name>
<role-link>TheApplicationRole</role-link>
</security-role-ref>
1.2 Security Identify
当某个EJB调用其他EJB时,它可以用这个标签来指明它会用哪个identify(Principal)来调用其他EJB。
<security-identity>
<use-caller-identity/>
</security-identity>
<security-identity>
<run-as>
<description>A private internal role</description>
<role-name>InternalRole</role-name>
</run-as>
</security-identity>
1.3 Security Role
定义应用级别的role,理论让应当是基于不同的domain,会有不同的role。
<assembly-descriptor>
<security-role>
<description>The single application role</description>
<role-name>TheApplicationRole</role-name>
</security-role>
</assembly-descriptor>
1.4 Method permissions
方法级别的安全验证,具有相应role的用户才能执行该方法
<method-permission>
<description>The admin role may access any method of the
EmployeeServiceAdmin bean </description>
<role-name>admin</role-name>
<method>
<ejb-name>EmployeeServiceAdmin</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
1.5 web中的security constraint
讨论的太多了,此处不提。
2. JAAS
JBoss的JBossSX框架是基于J2EE的JAAS API,因此,想要了解JBoss的安全机制,首先要对JAAS有一定的认识。
2.1 什么是JAAS
JAAS API是由一堆java关于用户验证和授权的包组成, 它实现了一个java版本的标准可插拔的验证模块(PAM)框架,同时也支持Java 2 平台的访问控制架构来实现基于用户的授权。
2.1.1 JAAS核心类
JAAS可以分成三大块:
1. 通用类:Subject, Principal, Credential
2. 验证类:LoginContext, LoginModule, CallbackHandler, Callback
3. 授权类:Policy, AuthPermission, PrivateCredentialPermission
2.1.1.1 Subject
想要授权访问某项资源,应用程序必须首先验证request的source(用户,服务, 组件)。 在JAAS中,使用Subject类来代表一个request的source。一旦source被验证, 就会创建一个Subject对象,同时会将之与某个或多个identity相关联(Principal)。
Subject还会包含一些安全相关的属性,即Credential。Credential包括公用的和私有的,分别分开保存。
分享到:
相关推荐
### JBoss安全性设置详解 #### 一、JMX控制台安全性配置 在部署与管理Java应用服务器时,确保系统的安全性是至关重要的一步。对于JBoss AS(Application Server),特别是其管理控制台——JMX Console的安全性配置...
帮助修补JBOSS安全漏洞,防止别人黑进你的服务器。
争对安全性方面的配置,如需要禁止不需要的http请求方式等
以下是对标题和描述中提到的几点JBoss安全配置的详细解释: 1. **隐藏访问目录**: 在`jboss_home/server/default/deploy/jbossweb-tomcat55.sar/conf/web.xml`中,`<param-name>listings</param-name>`和`...
总的来说,JBoss安全优化涵盖了多个层面,从基础的访问控制到高级的加密通信,都需要细致考虑和配置。正确实施这些措施可以极大地提高JBoss服务器的安全性和稳定性,防止未授权访问和数据泄露。
【中间件安全】Jboss安全加固规范
jboss安全配置.pdf
《Java EE应用服务器安全配置——以JBoss为例》 在Java EE环境中,安全性是至关重要的,特别是在企业级应用服务器如JBoss中。JBoss的安全性配置主要依赖于Java鉴别与授权服务(JAAS,Java Authentication and ...
【JBOSS服务器安全配置基线】 JBOSS服务器安全配置基线是针对中国移动通信有限公司管理信息系统部维护的JBOSS服务器制定的一套安全性设置标准。该文档的主要目的是确保服务器系统的安全性和稳定性,以保护公司的...
### JBoss + 优化配置详解 #### 一、JBoss后台启动优化 JBoss作为一款广泛使用的Java应用服务器,其启动方式的选择对于系统的稳定性和性能至关重要。后台启动可以使JBoss在启动后不会阻塞终端,方便进行其他操作或...
JBoss 提供了多层次的安全机制,包括用户认证、角色授权、SSL/TLS加密等。文档将详细解读如何配置和管理这些安全特性,以确保应用程序的数据安全和访问控制。 【JBoss 性能优化】 为了保证系统的高效运行,性能...
安全性是 JBoss 的一个重要组成部分,书中详细介绍了如何配置安全服务以及使用 JAAS (Java Authentication and Authorization Service) 来实现用户身份验证和授权。 **安全服务配置** - **`org.jboss.security....
JBOSS优化配置是针对企业级Java应用服务器JBoss进行性能提升的重要环节,涉及多个方面,包括后台启动、内存管理、日志输出模式以及数据库连接池的调整。下面将详细介绍这些知识点。 一、JBOSS后台启动: 在JBOSS的...
JBoss 安全扩展在 JBoss/WildFly 容器中通过 JMS 和 WebSocket 端点传播安全上下文。 Maven< dependency> < groupId>...
**九、JBoss安全管理** JBoss提供了基于角色的访问控制(RBAC)和身份验证机制,如JaAS(Java Authentication and Authorization Service),确保了应用的安全性。 **十、故障排查与优化** 当遇到问题时,可以通过...
10. PicketBox:PicketBox是JBoss安全框架的一部分,提供了认证和授权服务。它支持JAAS(Java Authentication and Authorization Service),并提供了一套易于使用的API来处理安全性问题,如身份验证、会话管理以及...
JBOSS的安全配置• JMX Console • JBoss Web Console
JBOSS服务器安全配置基线.doc
JBOSS 服务器安全配置基线 JBOSS 服务器安全配置基线是指为了确保 JBOSS 服务器的安全稳定运行而制定的安全策略和配置。该基线涵盖了安全组织结构、安全流程、安全设备、访问控制、加密与解密、权限管理、日志与...
【JBOSS,JBoss安装部署】 JBoss是Red Hat公司开发的一款开源的应用服务器,它基于Java EE(Enterprise Edition)规范,提供了全面的企业级应用程序部署和管理解决方案。本篇文章将详细讲解JBoss的安装和部署过程,...